2012-07-11 67 views
0

我正在运行试图访问窗体我的本地服务器的远程服务器。Flex简单的corssdomain访问

错误#2044:SecurityErrorEvent:文字=错误#2048:安全沙箱:http://mydomain1.com/debaton/debaton.swf不能从http://mydomain2.com/~debaton/services/gateway.php访问数据。

所以我把跨域的 http://mydomain2.com/~debaton/crossdomain.xml

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

</cross-domain-policy> 

,并把

params.allowscriptaccess = "always"; 

在我的HTML。

但还是有这个错误! 我在做什么错?

回答

1

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

跨域策略文件,名为crossdomain.xml,放置在服务器的根级别。

+0

+1好抓;尽管我认为这不是普遍的。有许多方法可以在子目录中放置跨域。 http://stackoverflow.com/questions/8766688/how-to-add-crossdomain-xml-in-sub-directory – JeffryHouser 2012-07-11 18:12:46

1

默认情况下,Flash Player将从Web服务器的根目录加载crossdomain.xml文件。如果你想从一个子文件夹中加载它,你需要有明确的加载:

import flash.system.Security; 

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

上有live docs一些更多的信息。