2011-03-14 179 views
0

我很努力得到一個Flex SWF(它嵌入在JSP中)來訪問遠程數據(來自另一個域)。Flex CrossDomain.xml錯誤 - Channel.Security.Error錯誤錯誤#2048

我有一個crossdomain.xml(它嵌入在我的SWF中)。其內容如下:

Security.loadPolicyFile("http://www.mysite.com:8380/CSS/ReviewItemsServer/crossdomain.xml"); 

當我通過瀏覽器訪問網頁JSP,嵌入式SWF試圖做的事:

<?xml version="1.0" encoding="UTF-8"?> 
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="all" /> 
    <allow-access-from domain="*"/> 
    <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 

在我main.xml中使用我加載crossdomain.xml文件一個Java遠程調用,我得到以下錯誤:

Error string = Send failed 
Error code = Client.Error.MessageSend 
Error details = Channel.Security.Error error Error #2048: 
Security sandbox violation: http://www.mysite.com/CSS/ReviewItemsServer/ReviewItemsMain.swf 
cannot load data from http://www.mysite.com:8380/CSS/ReviewItemsServer/messagebroker/amf. url: 

我敢肯定的是,crossdomain.xml文件實際上得到由SWF加載,我創建了一個簡單的URLLoader加載XML文件和CHEC k表示沒有錯誤。所以,我不認爲這是一個問題......

當我運行在調試模式下的SWF ...我還看到了以下錯誤消息:

Error: [strict] Ignoring policy file at http://www.mysite.com:8380/CSS/ReviewItemsServer/crossdomain.xml due to missing Content-Type. See http://www.adobe.com/go/strict_policy_files to fix this problem. 

任何幫助將大大appreaciated ... 。

馬克

回答

3

您需要在http://www.mysite.com:8380/crossdomain.xml具有下列內容的主策略文件:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="all"/> 
</cross-domain-policy> 

這將允許使用子目錄中的跨域策略文件。

+0

謝謝James,主策略文件叫什麼名字?以及SWF如何加載它? – Michael 2011-03-14 13:56:10

+0

您的案例中的主策略文件是:http://www.mysite.com:8380/crossdomain.xml它將由Flash Player自動加載。 – 2011-03-14 14:00:58