- 本站大部分内容从网上收集,收集目的仅供研究、学习。涉及版权或不希望收录您的文章请您及时与我联系。
- 本站IM群,请自行选择。请各位朋友按照自己喜好加入。加入群后请及时发言,防止被清理。谢谢您的合作!!!
- QQ群:Y①WEB开发(ASP.NET)号码:7351660 QQ群:Y②WEB开发(ASP+.NET)号码:11864905
- QQ群:Y③WEB开发(DIV+CSS)号码:16610506 QQ群:Y④WEB开发(JS+AJAX)号码:16143998
- QQ群:Y⑤WEB开发(新手)号码:12777715 MSN群:yaosansi[at]126.com
使用crossdomain.xml让Flash可以跨域传输数据
crossdomain.xml文件格式
crossdomain.xml的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。下边是两个例子:
试例1:
<?xml version="1.0"?> <cross-domain-policy>
<allow-access-from domain="www.AAA.com" /> <allow-access-from domain="*.AAA.com" /> <allow-access-from domain="105.216.0.40" /> </cross-domain-policy>
试例2:允许任何域的访问
<?xml version="1.0"?> <cross-domain-policy>
<allow-access-from domain="*" /> </cross-domain-policy>
如果使用XMLSocket要把端口号加上
<cross-domain-policy>
<allow-access-from domain="*.foo.com" to-ports="507,516" />
<allow-access-from domain="*.bar.com" to-ports="516-523" />
<allow-access-from domain="www.foo.com" to-ports="507,516-523" />
<allow-access-from domain="202.117.80.2" to-ports="*" />
</cross-domain-policy>
如果安全策略文件放在根目录,文件名字必须为crossdomain.xml,如果不放在根目录,要用
System.security.loadPolicyFile(http://webservice.yaosansi.com/crossdomain.xml )
这样的方法加载安全策略文件。
对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中!
第二个例子允许任何域的访问。对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中!
示例
1.SWF文件主要ActionScript:
on (release) { var myvar = new LoadVars();
myvar.t = t2.text;
myvar.sendAndLoad("http://www.163.com/test.asp",myvar,"post");
myvar.onLoad = function(re){ if(re){ t1.text = myvar.t;
}else{ t1.text = "fail..."; }
}
}
2.test.asp代码:
<%
Dim t t = Request.form("t") Response.write("t=" & t & " back!")
%>
位于www.AAA.com域中的SWF文件要访问www.BBB.com的文件时,SWF首先会检查BBB服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置了允许www.AAA.com域访问,那么通信正常。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。
订阅本站,阅读更多文章