转载自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的更多相关文章

  1. flash跨域策略文件crossdomain.xml

    flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据. 位于www.a.com域中的SWF文件要访问www. ...

  2. flash跨域策略文件crossdomain.xml配置详解

    来源:http://www.2cto.com/Article/201108/100008.html 0x01 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了 ...

  3. flash跨域访问

    -------------------------------------------------------背景------------------------------------------- ...

  4. JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案

    JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...

  5. flash跨域访问,crossdomain.xml,error #2048

    最近遇到了flash的万年老梗,跨域访问的问题.之前一直没有处理过这类问题,是因为做项目的时候别人已经处理好了.真到自己遇到的时候,还是很费脑筋的. 1遇到的问题 客户端发布到网页的时候,socket ...

  6. Flash跨域传输数据 crossdomain.xml

    一.概述位于www.a.com域中的SWF文件要访问www.163.com的文件时,SWF首先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功:若crossdo ...

  7. [转载]解决flash与js交互、flash跨域交互、flash跨域提交

    http://blog.csdn.net/andyxm/article/details/5219919 我们引用本地flash,实现flash与js双向交互. function thisMovie(m ...

  8. (二)文档请求不同源之flash跨域

    对于FLash,IE是认object标签的,但是FF和Chrome是认embed标签的. 1.客户端 <param name="allowScriptAccess" valu ...

  9. [经验] - JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案

    最近在开发WSS RESTful服务的时候, 碰到了这些个纠结的问题. 在网上查找了半天, 找到n多种解决方案, 但是都是部分的, 要么是没有跨域的情况, 要么是没有post的情况, 要么不是用WCF ...

随机推荐

  1. 【转载】shell中的特殊变量$

    shell中的特殊变量:变量名含义$0shell或shell脚本的名字$*以一对双引号给出参数列表$@将各个参数分别加双引号返回$#参数的个数$_代表上一个命令的最后一个参数$$代表所在命令的PID$ ...

  2. 【zoj3254】Secret Code

    题意: 给出a.p.d.m 求a^x=d(mod p) 0<=x<=m 的解的个数 题解: 今天一整天的时间大部分都在调这题Orz BSGS什么的还是太不熟了 我们可以用BSGS拓展版求出 ...

  3. Oracle-PLSQL Developer使用笔记

    1.新建菜单 command window ---->命令行,执行sql语句 sql window ---->执行sql语句,可导出CSV,TSV,HTML,XML等类型文件 report ...

  4. 基于redis的IP地址快速查询

    在一些大数据处理中,我们需要用到IP地址查询,一般为了查询一个IP属于哪个地址,我们通常需要根据一个IP数据库来查询,网络上比较常用的IP库是纯真IP数据库.IP数据库里面的记录一般存储方式为IP的开 ...

  5. hdoj 2031 进制转换

    进制转换 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  6. [iOS基础控件 - 4.6] iOS开发中的长度单位

    对于开发中设置的位置.尺寸单位 系统会根据屏幕的性质转换为像素单位 由于视网膜屏在同样尺寸下分辨率是非视网膜屏的两倍,所以 非视网膜屏:1个单位 = 1像素 视网膜屏:1个单位 = 2像素   应对非 ...

  7. Android 解析 xml

    URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection )httpUrl.openConnection(); c ...

  8. Java Serializable(序列化)的理解和总结、具体实现过程(转)

    原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=13576&fromuid=3402 Java Serializable ...

  9. 曾经的pc端项目踩到的一些兼容性的坑及其解决方案

    曾经公司pc端项目一直最低兼容到IE7,要求和chrome下浏览效果一致,真心坑坏了我和另外一个小伙伴(另一个小伙伴以前也没处理过兼容问题).不过还好,在这里真心感谢鑫哥博客的详解,从底层原理讲到了具 ...

  10. 《Effect Java》 归纳总结

    目录: 一.创建和销毁对象 (1 ~ 7) 二.对于所有对象都通用的方法 (8 ~ 12) 三.类和接口 (13 ~ 22) 四.泛型 (23 ~ 29) 五.枚举和注解 (30 ~ 37) 六.方法 ...