【问题标题】:Flex CrossDomain.xml Error - Channel.Security.Error error Error #2048Flex CrossDomain.xml 错误 - Channel.Security.Error 错误错误 #2048
【发布时间】:2011-03-14 13:09:36
【问题描述】:

我正在努力让 Flex SWF(嵌入在 JSP 中)来访问远程数据(来自另一个域)。

我有一个 crossdomain.xml(嵌入在我的 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 文件:

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

当我通过浏览器访问 JSP 网页时,嵌入式 SWF 尝试进行 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 文件并检查没有错误。所以我不认为这是一个问题......

当我在调试模式下运行 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.

任何帮助将不胜感激......

标记

【问题讨论】:

    标签: apache-flex crossdomain.xml


    【解决方案1】:

    您需要一个位于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>
    

    这将允许使用子目录中的跨域策略文件。

    【讨论】:

    • 谢谢詹姆斯,主策略文件叫什么? SWF 是如何加载它的?
    • 你的主策略文件是:mysite.com:8380/crossdomain.xml Flash Player会自动加载。
    猜你喜欢
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多