[AS3]使用crossdomain.xml让Flash可以跨域传输数据
一、概述
位于www.CuPlayer.com域中的SWF文件要访问www.163.com的文件时,SWF首先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置了允许www.CuPlayer.com域访问,那么通信正常。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。
二、crossdomain.xml文件格式
crossdomain.xml的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。下边是两个例子:
- <?xml version="1.0"?>
- <cross-domain-policy>
- <allow-access-from domain="www.friendOfFoo.com" />
- <allow-access-from domain="*.foo.com" />
- <allow-access-from domain="105.216.0.40" />
- </cross-domain-policy>
- <?xml version="1.0"?>
- <cross-domain-policy>
- <allow-access-from domain="*" />
- </cross-domain-policy>
第二个例子允许任何域的访问。对于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!")
- %>
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例