如何在 Flex 3 中通过 HTTP 请求传递错误信息?
我的 Flex3 应用程序必须显示来自服务器的有意义的应用程序级错误消息。
本文 文章指出,Flash 在接收错误信息方面有严格的限制,无论是状态代码、响应正文还是响应标头(如所述)。 我可以从我的 servlet 中使用其中任何一个。 但显然没有一个可以访问!
但是我的代码在非 200 HTTP 状态代码上的 HTTPService.send
之后收到的 mx.rpc.events.FaultEvent
不允许访问其中任何一个!
一种解决方法是始终传递 200“OK”状态代码,并在正文中使用 XML 内容,例如使用
根标记。 但这将完全绕过 Flex 故障机制,并且我的每个事件处理程序都必须自己找出是否存在错误。
我只是想让某种类型的响应信息在发生错误时可用。
顺便说一句,我总是使用 POST,因为 Flex 使用 POST 传递的信息比使用 GET 传递的信息更多。
My Flex3 application must display meaningful application-level error messages from the server.
This article article says that Flash has severe limitations on receiving error info, whether as status codes, response body, or response headers as described. I can use any of these from my servlet. But apparently none are accessible!
But the mx.rpc.events.FaultEvent
which my code receives following HTTPService.send
on a non-200 HTTP status code does not allow access to any of these!
One workaround is to always pass the 200 "OK" status code, and use XML content in the body, e.g. with an <Error>
root tag. But that would completely bypass the Flex fault mechanism, and every one of my event handlers would have to figure out by itself if there had been an error.
I just want to allow some sort of response information to be available on error.
By the way, I always use POST, as Flex passes more information with POST than with GET.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
经过进一步的探索,似乎没有什么非 hacky 的方法可以做到这一点。
HTTPService
根本不传递任何有关错误的信息。因此,您必须编写一个解决方法层来处理如上所述的错误:始终传递 200“OK”状态代码,并在正文中使用 XML 内容,例如使用
根标记以及 XML 中的状态代码。 然后,创建一个层,该层在 XML 中出现非 200 状态时回调错误。After futher exploration, it seems that there is no non-hacky way to do this.
HTTPService
simply does not pass through any information about errors.So, you have to write a workaround layer to handle errors as described above: Always pass the 200 "OK" status code, and use XML content in the body, e.g. with an
<Error>
root tag and the status code in the XML. Then, create a layer which calls-back with a Fault in case of non-200 status in the XML.