【问题标题】:Flash AS3 on URLLoader.load POST - getting http status=0 and no data. Works in Flash IDEURLLoader.load POST 上的 Flash AS3 - 获取 http 状态 = 0 且没有数据。在 Flash IDE 中工作
【发布时间】:2011-07-13 17:12:42
【问题描述】:

我正在使用urlload.load(urlRquest) 拨打休息电话。

还有

  urlRequest.method = URLRequestMethod.POST;
  urlRequest.contentType = "application/xml";

当我在 Flash IDE 中进行调用时,我会在发生错误时得到 HTTPStatusEvent.status = 400(或其他)。并且 IOErrorEvent.data 包含 xml(或有时是字符串)。

但是,当我在浏览器(Firefox Mac 或 PC)中运行 swf 时,HTTPStatusEvent.status = 0IOErrorEvent.data 为空。 (有趣的是,在 Safari Mac 中,我确实得到了 400 状态,但仍然没有数据。)

对可能发生的事情有任何想法吗? (我需要我的错误!)

【问题讨论】:

  • 检查跨域或沙盒设置...不知道他们是否对 this 问题负责,但大多数情况下是他们。 macromedia.com/support/documentation/en/flashplayer/help/…
  • 你也在收听SecurityErrorEvent.SECURITY_ERROR吗?
  • SecurityErrorEvent.SECURITY_ERROR 的好主意,但不幸的是没有发生安全错误。但我会仔细检查是否为该服务器设置了跨域文件。有趣的是,调用成功时有urlloader数据。
  • 做了更多测试。首先关闭跨域文件是正确的。如果服务返回 200 状态而不是错误状态,则有效负载(数据)确实可以通过。

标签: actionscript-3 flash http-status-codes ioerror


【解决方案1】:

根据action script reference,在 Firefox 中运行 swf 将始终生成 0,因为 Firefox 不会将状态代码传递给 Flash 播放器。

【讨论】:

    【解决方案2】:

    当您在 Flash 中运行 swf 时,Security.sandboxType 属性可能是 localTrusted,这会导致完全授予对外部的访问权限。但是当您在浏览器中运行它时,它似乎是 localWith...

    尝试执行以下操作:

    1) 用-use-network=true 编译它

    [添加]

    在 Flash 中,该设置位于 Flash 标签的“发布设置”下。名称为“本地播放安全”。所以你需要在发布 swf 之前将其设置为“仅访问网络”。

    您还可以使用 Adob​​e 的Local Content Updater 来切换发布后的 swf 文件的“-use-network”标志。

    [/添加]

    2) 在您的 HTML 包装器中提供对网络的访问。

    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100">  
      <param name="allowNetworking" value="all">  
      <param name="movie" value="moviename.swf">  
      <param name="quality" value="high">  
       <embed src="moviename.swf" width="100" height="100" quality="high"></embed>  
    </object>
    

    希望这会有所帮助。

    【讨论】:

    • @Daniel B,您需要根据我的回答更新发布设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2015-09-29
    相关资源
    最近更新 更多