我正在努力获取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.
任何帮助都会有很大的帮助......
标记
答案 0 :(得分: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>
这将允许使用子目录中的跨域策略文件。