Flex简单的跨域访问

时间:2012-07-11 16:47:11

标签: flex

我正在尝试从本地服务器访问远程服务器。

  

错误#2044:SecurityErrorEvent:text =错误#2048:安全沙箱:http://mydomain1.com/debaton/debaton.swf无法访问http://mydomain2.com/~debaton/services/gateway.php中的数据。

所以我把crossdomain放在了 http://mydomain2.com/~debaton/crossdomain.xml

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />

</cross-domain-policy>

并放

 params.allowscriptaccess = "always";

在我的HTML中。

但仍然有这个错误! 我做错了什么?

2 个答案:

答案 0 :(得分:1)

不幸的是,crossdomain.xml需要位于域的根目录下。根据Adobe的KB - Cross-domain policy for Flash movies

  

名为crossdomain.xml的跨域策略文件位于服务器的根级别。

答案 1 :(得分:1)

默认情况下,Flash播放器将从Web服务器的根目录加载crossdomain.xml文件。如果要从子文件夹加载它,则需要使用以下命令显式加载:

import flash.system.Security;

Security.loadPolicyFile('http://mydomain2.com/~debaton/crossdomain.xml');

有关live docs的更多信息。