我正在寻找一种方法来捕获PHP在Flex中使用HTTPService
抛出的异常。是否可以不使用AMFPHP ?
在我当前的实现中,如果在PHP中抛出异常,则确实在Flex端调度FaultEvent.FAULT
。唯一的问题是在FaultEvent
中无法找到异常的消息字符串。
让我试着通过一个例子来更好地解释。我们假设我们在服务器端有以下PHP代码:
<?php
throw new Exception("Exception message");
?>
在flex方面,假设有一个HTTPService
实例调用上面的PHP代码。此外,它在FaultEvent.FAULT
:
private function onFaultyResult(evt:FaultEvent):void {
//How do I get the exception message here?
}
如何在此函数中从PHP获取异常消息?
注意:trace(evt.toString())
给出:
[FaultEvent fault=[RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request" faultDetail="Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: 192.168.1.119/exception.php"]. URL: 192.168.1.119/exception.php"] messageId="7FF021A3-8C83-CB14-081D-8C8438802204" type="fault" bubbles=false cancelable=true eventPhase=2]
我还在调试器的evt
的其他字段中查找了“异常消息”,但找不到它。
谢谢
答案 0 :(得分:0)
根本问题是Flash无法处理服务器返回状态&lt;&gt; 200 http://www.robsondesign.com/blog/index.php/2009/04/16/flex-flash-and-http-status-codes/