【问题标题】:Recognize PHP errors in Actionscript 3?识别 Actionscript 3 中的 PHP 错误?
【发布时间】:2012-02-07 21:10:26
【问题描述】:

我正在连接到 Actionscript 3 (Adobe Flex) 中的一些 PHP 文件。 但是当其中一个 PHP 文件出错时,我的 Flash 项目就不能正常工作了。

是否有可能在 Actionscript 中检测到 PHP 错误,以便我可以在 Actionscript 中显示出错的消息?

谢谢。

【问题讨论】:

    标签: php actionscript-3 apache-flex flex4 flex4.5


    【解决方案1】:

    如果问题确实导致调用引发错误,我相信您会在 AS3 中收到 FaultEvent 而不是 ResultEvent,并且可以为其添加侦听器。如果不是它抛出错误而是它只是爆炸,你可以在响应中放入一些文本,表明它已成功完成。如果您将 XML 作为结果返回,您可以在处理结束时包含一个节点,上面写着“processingCompletedSuccess”之类的内容,并在 Flex 的结果处理程序中查找此节点,或者类似地,如果它是纯文本结果,您可以附加一个“成功”作为最后一个词,然后读取结果处理程序中的最后一行,看看它是否表示成功(将其剥离以进行进一步处理)。

    【讨论】:

    • 很确定如果 php 有错误,FaultEvent 不会被抛出。由于 PHP 服务器正在给出响应而不是失败。
    • 是的,如果它返回 200 OK,你可能是对的,这实际上是我一直在来回犹豫是否它是真的这一点。如果 PHP 中存在未捕获的异常,它是否仍会始终返回 200 OK 或者是否存在模块和服务器配置正确但 PHP 的执行导致非 200 OK 响应的情况?在提出建议之前,我会尝试对此进行更多测试。
    【解决方案2】:

    这取决于错误是什么。如果是致命的、不可捕获的错误,则否。但是,大多数错误很可能是可捕获的,因此可以通过响应适当的错误来处理。

    看:
    http://php.net/manual/en/function.set-exception-handler.php
    http://www.php.net/manual/en/function.set-error-handler.php

    【讨论】:

      【解决方案3】:

      您没有说明您从“PHP 文件”返回的数据类型,所以我假设它是 XML。

      当我使用 XML 时,我会标准化我的 XML 以遵循非常特定的灯光格式。

      <root>
        <data>
           // your data here
        </data>
        <error/>
        <message/>
      </root>
      

      在我的 php 中,我将它包装在一个 try catch 中。在 catch 块中,我将在消息节点内返回错误。并将在错误节点内分配一个 1。
      因此错误消息可能如下所示。

      <root>
        <data/>
        <error>1</error>
        <message>some error from php here</messge>
      </root>
      

      所以在 AS 方面我需要做的就是测试

      response.error == 1
      

      伪代码,但你应该明白。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-16
        • 2014-05-08
        • 1970-01-01
        • 2015-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多