2012-07-11 34 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一些更多的信息。