2011-07-13 30 views
2

我正在用urlload.load(urlRquest)进行其他调用。URLLoader.load POST上的AS3 Flash - 获取http状态= 0且没有数据。在Flash IDE中工作

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的状态,但仍然没有数据。)

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

+0

检查crossdomain或沙箱设置...不知道他们是否负责_this_问题,但他们大多数时间。 http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html#117502 – pkyeck

+0

你还在听'SecurityErrorEvent.SECURITY_ERROR'吗? –

+0

好主意与SecurityErrorEvent.SECURITY_ERROR,但不幸的是没有发生安全错误。但是我会仔细检查为该服务器设置了跨域文件。有趣的是,当通话成功时,有urlloader数据。 –

回答

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> 

希望这会有所帮助。

+0

@Daniel B,您需要根据我的回答更新发布设置。 – surlac