加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用crossdomain.xml让Flash可以跨域传输数据

发布时间:2020-12-15 23:42:01 所属栏目:百科 来源:网络整理
导读:注:两个不相干的项目中,一个项目的Flex调用另一个项目的Java项目的Action一定会遇到这样的问题! 今天调试Flex时报如下错误: 警告: 未能从 http://192.168.1.10/crossdomain.xml 中加载策略文件 出现此类问题是安全策略文件出错所致 例如: 位于www.mzwu.
注:两个不相干的项目中,一个项目的Flex调用另一个项目的Java项目的Action一定会遇到这样的问题!

今天调试Flex时报如下错误:
  警告: 未能从 http://192.168.1.10/crossdomain.xml 中加载策略文件
  出现此类问题是安全策略文件出错所致
  例如:
  位于www.mzwu.com域中的SWF文件要访问www.163.com的文件时,SWF首 先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置 了允许www.mzwu.com域访问,那么通信正常。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。
  crossdomain.xml的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性 domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。
  crossdomain.xml 策略文件:
  
Xml代码
  1. <?xmlversion="1.0"?>
  2. <!--http://www.foo.com/crossdomain.xml-->
  3. <cross-domain-policy>
  4. allow-access-fromdomain="*"/>
  5. </>

最后,crossdomain.xml的位置很重要,把它放在你要访问的Tomcat服务器的 Tomcat路径/webapps/root 下面就可以了。
JBOSS下: 在jboss4.2中设置crossdomain.xml应该放在 [jboss home]/server/default/deploy/jboss-web.deployer/Root.war 下。
这个目录是jboss的根目录,可以通过以下的url访问crossdomain.xml:
http://domainname:8080/crossdomain.xml
如果crossdomain.xml不是放在根目录下,而是在某个webapp下面,在flex中就需要在初始化的时候用
Mxml代码
    Security.loadPolicyFile("http://domainname:8080/dir/crossdomain.xml");

问题:警告: 域 192.168.10.26 没有指定元策略。将应用默认元策略 'master-only'。此配置已停用。请访问 http://www.adobe.com/go/strict_policy_files_cn 以解决此问题。
解决方案:
As3代码 Security.loadPolicyFile("http://xxx.xxx.xxx.xxx/crossdomain.xml");

路径就是你的crossdomain.xml文件在服务器上的路径。
Security.allowDomain("*");

这句不加也可以。
如果还没有解决您的问题,请看这里: Flex解决跨域问题的策略文件的写法 from http://app.cnzer.cn/html-78292-1.html
http://shang.iteye.com/blog/419918
详细信息参考 http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e08.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读