转载: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 ...
随机推荐
- socket.io使用随笔
这段时间一直在做一个手机APP,正好使用到了socket.io.这里记录一下服务器端发送信息的几种不同方式: socket.emit('message',"this is a test&qu ...
- idhttp.post方式 调用datasnap rest 远程方法
idhttp.get方式调用,这种比较简单,大家都会.post方式网上却没有任何成功的代码,本人也是摸索了一个上午才搞定. 分享给大家. (1)post方式调用的远程方法,方法名必须加“update” ...
- 转载.Net MVC中Html.RenderPartial和Html.RenderAction 的应用与区别
Html.Partial方法:是将视图内容直接生成一个字符串并返回, Html.RenderPartial方法是直接输出至当前HttpContext, 而Html.RenderAction还调用一下A ...
- 《数据通信与网络》笔记--QoS
QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术. 1.QoS参数 衡量服务质量QoS的参数主要包括: 端到端延迟(Delay) ...
- 高级C++开发工程师综合测试题(风林火山)
题目要求:代码要求能够直接编译运行 1. 请实现一个函数:凑14:输入很多个整数(1<=数值<=13),任意两个数相加等于14就可以从数组中删除这两个数,求剩余数(按由小到大排 ...
- [html][转]常用返回顶部代码
转至:http://jingyan.baidu.com/article/7082dc1ca6b928e40a89bd1a.html 一.使用HTML的锚标记最简单了 但是唯一的缺点就是样式不怎么样,会 ...
- [二]Json-lib的用法
1.Json字符串 PrintWriter out=response.getWriter(); // String resultJson="{\"name\":\&quo ...
- 自定义文件上传的按钮的样式css+js
核心就是一段css遮住了原生的input框,然后用js将文件的值传入到另一个指定的input框中 原文链接 http://geniuscarrier.com/how-to-style-a-html-f ...
- mybatis的辅助类
package org.ssi.util; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; impor ...
- node.js在windows下的学习笔记(9)---文件I/O模块
开发中我们经常会有文件I/O的需求,node.js中提供一个名为fs的模块来支持I/O操作,fs模块的文件I/O是对标准POSIX函数的简单封装. 1.将"hello world" ...