转载:flash 跨域 crossdomain.xml
转载自http://hi.baidu.com/bozz_/item/e8b1c7c4ca31317489ad9e91
flash 跨域 crossdomain.xml
一、概述
位于www.crossdomainSample.com域中的SWF文件要访问www.163.com的文件时,SWF首先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置了允许www.mzwu.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文件存放位置,建议将其存放于站点根目录中!
附:关于跨域策略文件crossdomain.xml
校内的: http://www.xiaonei.com/crossdomain.xml
<?xml version="1.0" ?> < !-- http://www.xiaonei.com/ --> < cross-domain-policy> < allow-access-from domain="*.xiaonei.com" /> < allow-access-from domain="xiaonei.com" /> < allow-access-from domain="*.renren.com" /> < allow-access-from domain="renren.com" /> < allow-access-from domain="*.kaixin.com" /> < allow-access-from domain="kaixin.com" /> < /cross-domain-policy> 这是很标准的做法,我就让我自己的域以及我的子域来获取数据。
淘宝的:
http://www.taobao.com/crossdomain.xml
<cross-domain-policy> < allow-access-from domain=”*.taobao.com”/> < allow-access-from domain=”*.taobao.net”/> < allow-access-from domain=”*.taobaocdn.com”/> < allow-access-from domain=”*.allyes.com”/> < /cross-domain-policy> 红色的一行是淘宝的CDN所在的域,所谓内容分发网络。
绿色的一行是淘宝的广告商了,http://www.allyes.com/好耶广告网络,只是不清楚是不是仍然再卖淘宝的广告?
多看几个大网站的crossdomain.xml,也可以知道可能是什么网络广告商给它们在打广告。
比如彭博:http://www.bloomberg.com/crossdomain.xml
<cross-domain-policy> < allow-access-from domain=”localhost”/> < allow-access-from domain=”10.16.136.107″/> < allow-access-from domain=”*.bloomberg.com”/> < allow-access-from domain=”*.pointroll.com”/> < allow-access-from domain=”*.pointroll.net”/> < /cross-domain-policy> 红色的就太不专业了,把内部IP都给暴露了。。。。。。
绿色的是彭博的广告商:PointRoll
路透的:
来源:(http://blog.sina.com.cn/s/blog_608f624f0100hz5l.html) - 关于跨域策略文件crossdomain.xml文件_傻掛_新浪博客 http://www.reuters.com/crossdomain.xml
<cross-domain-policy> < allow-access-from domain=”*.reuters.com” secure=”false”/> < allow-access-from domain=”ad.doubleclick.net” secure=”false”/> < allow-access-from domain=”ad.uk.doubleclick.net” secure=”false”/> < allow-access-from domain=”m.2mdn.net” secure=”false”/> < allow-access-from domain=”m2.2mdn.net” secure=”false”/> < /cross-domain-policy> 广告给了doubleclick来做(绿色)
2mdn.net看不懂是干嘛的,大概是个cdn吧。
滥情的facebook:
http://www.facebook.com/crossdomain.xml
<?xml version=”1.0″?> < !DOCTYPE cross-domain-policy SYSTEM “http://www.adobe.com/xml/dtds/cross-domain-policy.dtd”> < cross-domain-policy> < site-control permitted-cross-domain-policies=”master-only” /> < allow-access-from domain=”s-static.facebook.com” /> < allow-access-from domain=”static.facebook.com” /> < allow-access-from domain=”static.api.ak.facebook.com” /> < allow-access-from domain=”*.static.ak.facebook.com” /> < allow-access-from domain=”s-static.thefacebook.com” /> < allow-access-from domain=”static.thefacebook.com” /> < allow-access-from domain=”static.api.ak.thefacebook.com” /> < allow-access-from domain=”*.static.ak.thefacebook.com” /> < allow-access-from domain=”*.static.ak.fbcdn.com” /> < allow-access-from domain=”external.ak.fbcdn.com” /> < allow-access-from domain=”*.static.ak.fbcdn.net” /> < allow-access-from domain=”external.ak.fbcdn.net” /> < allow-access-from domain=”www.facebook.com” /> < allow-access-from domain=”www.new.facebook.com” /> < allow-access-from domain=”register.facebook.com” /> < allow-access-from domain=”login.facebook.com” /> < allow-access-from domain=”ssl.facebook.com” /> < allow-access-from domain=”secure.facebook.com” /> < /cross-domain-policy> 这么多!有子域,有CDN,有thefacebook(facebook的旧域名吧?)
还是google的专业:
<?xml version=”1.0″?> < !DOCTYPE cross-domain-policy SYSTEM “http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd”> < cross-domain-policy> < site-control permitted-cross-domain-policies=”by-content-type” /> < /cross-domain-policy> 蓝色行的意思是,要符合要求的文件你才能取,不管你是哪来的flash数据请求。符合要求的文档必须满足: Content-Type: text/x-cross-domain-policy
另: 当Flex访问WebService服务时,在本地能够正常访问,当部署到web容器中发布为web服务后,再调用WebServicIE,此时就会被拒绝访问,这就是Flex跨域访问的沙箱问题, 为了解决Flex跨域访问WebService的问题,可采用如下方案: 首先,跨域访问被拒绝是因为提供服务方没有配置安全策略文件,即crossdomain.xml,如果你不想用crossdomain.xml就要用到代理,即自己写一个后台读取webservice,然后提供给自己的flex应用,因为在flashplayer中,要跨域必须要有策略文件。考虑到 flashplayer升级到9.124之后,加强了安全性,之前的crossdomain.xml的写法发生了变化,以下就是该文件的完整写法: <?xml version="1.0"?> < !DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> < cross-domain-policy> < allow-access-from domain="*" /> < allow-http-request-headers-from domain="*" headers="*"/> < /cross-domain-policy> 表示该服务允许任何外域来访问。 关于crossdomain.xml的放置目录问题,有如下解决方案,可放置在:
1) 如果这个目录是容器的根目录,可以通过以下的url访问crossdomain.xml:
http://localhost:8080/crossdomain.xml 。 2) 如果crossdomain.xml不是放在根目录下,而是在某个webapp下面,在flex中就需要在初始化的时候应用 Security.loadPolicyFile("http:// localhost:8080/aaa /crossdomain.xml");
其中aaa为webapp的名称 这样,外部Flex访问该服务发布的WebService时,flashplayer首先找的就是crossdomain.xml文件,若安全机制设置为允许访问,则访问成功。
转载:flash 跨域 crossdomain.xml的更多相关文章
- flash跨域策略文件crossdomain.xml
flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据. 位于www.a.com域中的SWF文件要访问www. ...
- flash跨域策略文件crossdomain.xml配置详解
来源:http://www.2cto.com/Article/201108/100008.html 0x01 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了 ...
- flash跨域访问
-------------------------------------------------------背景------------------------------------------- ...
- JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...
- flash跨域访问,crossdomain.xml,error #2048
最近遇到了flash的万年老梗,跨域访问的问题.之前一直没有处理过这类问题,是因为做项目的时候别人已经处理好了.真到自己遇到的时候,还是很费脑筋的. 1遇到的问题 客户端发布到网页的时候,socket ...
- Flash跨域传输数据 crossdomain.xml
一.概述位于www.a.com域中的SWF文件要访问www.163.com的文件时,SWF首先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功:若crossdo ...
- [转载]解决flash与js交互、flash跨域交互、flash跨域提交
http://blog.csdn.net/andyxm/article/details/5219919 我们引用本地flash,实现flash与js双向交互. function thisMovie(m ...
- (二)文档请求不同源之flash跨域
对于FLash,IE是认object标签的,但是FF和Chrome是认embed标签的. 1.客户端 <param name="allowScriptAccess" valu ...
- [经验] - JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
最近在开发WSS RESTful服务的时候, 碰到了这些个纠结的问题. 在网上查找了半天, 找到n多种解决方案, 但是都是部分的, 要么是没有跨域的情况, 要么是没有post的情况, 要么不是用WCF ...
随机推荐
- 【转载】shell中的特殊变量$
shell中的特殊变量:变量名含义$0shell或shell脚本的名字$*以一对双引号给出参数列表$@将各个参数分别加双引号返回$#参数的个数$_代表上一个命令的最后一个参数$$代表所在命令的PID$ ...
- 【zoj3254】Secret Code
题意: 给出a.p.d.m 求a^x=d(mod p) 0<=x<=m 的解的个数 题解: 今天一整天的时间大部分都在调这题Orz BSGS什么的还是太不熟了 我们可以用BSGS拓展版求出 ...
- Oracle-PLSQL Developer使用笔记
1.新建菜单 command window ---->命令行,执行sql语句 sql window ---->执行sql语句,可导出CSV,TSV,HTML,XML等类型文件 report ...
- 基于redis的IP地址快速查询
在一些大数据处理中,我们需要用到IP地址查询,一般为了查询一个IP属于哪个地址,我们通常需要根据一个IP数据库来查询,网络上比较常用的IP库是纯真IP数据库.IP数据库里面的记录一般存储方式为IP的开 ...
- hdoj 2031 进制转换
进制转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- [iOS基础控件 - 4.6] iOS开发中的长度单位
对于开发中设置的位置.尺寸单位 系统会根据屏幕的性质转换为像素单位 由于视网膜屏在同样尺寸下分辨率是非视网膜屏的两倍,所以 非视网膜屏:1个单位 = 1像素 视网膜屏:1个单位 = 2像素 应对非 ...
- Android 解析 xml
URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection )httpUrl.openConnection(); c ...
- Java Serializable(序列化)的理解和总结、具体实现过程(转)
原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=13576&fromuid=3402 Java Serializable ...
- 曾经的pc端项目踩到的一些兼容性的坑及其解决方案
曾经公司pc端项目一直最低兼容到IE7,要求和chrome下浏览效果一致,真心坑坏了我和另外一个小伙伴(另一个小伙伴以前也没处理过兼容问题).不过还好,在这里真心感谢鑫哥博客的详解,从底层原理讲到了具 ...
- 《Effect Java》 归纳总结
目录: 一.创建和销毁对象 (1 ~ 7) 二.对于所有对象都通用的方法 (8 ~ 12) 三.类和接口 (13 ~ 22) 四.泛型 (23 ~ 29) 五.枚举和注解 (30 ~ 37) 六.方法 ...