转载: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 ...
随机推荐
- Android 开发Project中各个目录和文件的介绍
如上图标号: 存放java文件的文件夹“src”: 由aapt工具根据应用中的资源文件自动生成的R.java文件,以及buildConfiger.java文件,这两个文件最好不要去修改: 存放各种资源 ...
- kvm usb
- 单点登录与消息队列以及在J2EE中的实现方案
前言 这次为大家简单介绍两个在WEB开发中经常使用的概念——单点登录和消息队列以及具体到J2EE中的一些实现方案.本文原创性的工作比较少,主要是一些总结概括和自己的理解. 单点登录SSO SSO的业务 ...
- 集合框架Map之KeySet方法的使用
package cn.itcast.map; import java.util.HashMap; import java.util.Iterator; import java.util.Map; im ...
- PC问题-使用BAT方法清理Delphi临时文件
@echo offdel /S *.~*del /S *.dcudel /S *.dskdel /S *.hppdel /S *.ddpdel /S *.mpsdel /S *.mptdel /S * ...
- 第九章、文件与文件系统的压缩与打包 3. 打包命令: tar
打包命令: tar gzip 与 bzip2 也能够针对目录来进行压缩, 不过,这两个命令对目录的压缩指的是『将目录内的所有文件 "分别" 进行压缩』! 将多个文件或目录包成一个大 ...
- js中动态载入css js样式
js中动态载入css样式,方法如下: //<link rel="stylesheet" type="text/css" href="http:/ ...
- Java与MySql数据类型对照表
类型名称 显示长度 数据库类型 JAVA类型 VARCHAR L+N VARCHAR java.lang.String CHAR N CHAR java.lang.String BLOB L+N BL ...
- js避免全局污染
避免声明全局变量,以免发生冲突
- 在virtual pc中搭建基于ubuntu 的git环境
1. 在virtual pc 上安装 ubuntu http://www.hanselman.com/blog/InstallingUbuntu104LTSOnWindowsVirtualPCOnWi ...