在没有AMFPHP的情况下在Flex中捕获PHP异常

时间:2011-11-10 06:43:57

标签: php actionscript-3 flex4 amfphp

我正在寻找一种方法来捕获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的其他字段中查找了“异常消息”,但找不到它。

谢谢

1 个答案:

答案 0 :(得分:0)

根本问题是Flash无法处理服务器返回状态&lt;&gt; 200 http://www.robsondesign.com/blog/index.php/2009/04/16/flex-flash-and-http-status-codes/