URLLoader.load上的Flash AS3 POST - 获取http status = 0且没有数据。适用于Flash IDE

时间:2011-07-13 17:12:43

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

我正在使用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状态,但仍然没有数据。)

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

尝试执行以下操作:

1)用-use-network=true

编译它

[ADDED]

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

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

[/ ADDED]

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>

希望这有帮助。