安全沙盒冲突无法从 box.net 加载数据



我有一个应用程序,它可以向/从 box.net 上传/下载文件。 该应用程序未部署在服务器上时工作正常,但是当我将其部署在Google App Engine上时,遇到了以下错误。

错误 #2044:

未处理的安全性错误:。文本=错误 #2048:安全性 沙盒冲突:http://somexyz.appspot.com/xyzsample.swf 不能 从 http://box.net/api/1.0/download/abcdef/123456 加载数据。

我在as3中包含以下代码行

Security.allowDomain("*");

并跨域.xml放置在应用根文件夹(Google 应用引擎)中,并可以使用 somexyz.appspot.com/crossdomain.xml

跨域.xml包含以下行

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy>
   <site-control permitted-cross-domain-policies="all"/>
   <allow-access-from domain="*" to-ports="*"/>
   <allow-http-request-headers-from domain="*" headers="*"/>
   <allow-http-request-headers-from domain="*"/>
</cross-domain-policy>

当我尝试使用雄猫时,我也遇到了同样的问题。

如果您从 box.net 加载,则需要检查http://box.net/crossdomain.xml

在那里你可以阅读以下内容:

<!--
Box has recently changed its crossdomain policy for API calls made from Flash.
To continue using Box API, please add the following line to the code of your Flash
application:
- AS2: System.security.loadPolicyFile("http://www.box.net/api/crossdomain.xml");
- AS3: Security.loadPolicyFile("http://www.box.net/api/crossdomain.xml");
-->

更新

请确保您是直接添加的:

Security.loadPolicyFile("http://www.box.net/api/crossdomain.xml")

加载时:

*.load('http://www.box.net/api/1.0/download/abcdef/123456');

以便服务器的路径相同:http://www.box.net/

对于闪存,http://www.box.net/和 http://box.net/是2个不同的域名。

最新更新