转载自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. SGU-495 Kids and Prizes 概率DP

    题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=495 题意:有n个盒子,每个盒子里面放了一个奖品,m个人轮流去选择盒子,如果盒子里面 ...

  2. 【现代程序设计】【homework-03】【11061027】

    Q:你现在使用的代码规范是什么,  和上课前有什么改进? A: 代码规范........自定义的代码规范算 代码规范吗.....   Q:你的同伴有哪些优点 (列出至少三点), 和那些需要改进的地方 ...

  3. [OC Foundation框架 - 6] NSMutableString

    NSString是不可变的 NSMutableString是可变字符串   1.初始化 2.串联字符串 3.替换字符串 4.插入字符串 5.删除字符串   #pragma mark buffer st ...

  4. ECSHOP 数据库结构说明 (适用版本v2.7.3)

    ECSHOP 数据库结构说明 (适用版本v2.7.3) 1.account_log 用户账目日志表 字段 类型 Null/默认 注释 log_id mediumint(8) 否 / 自增 ID 号 u ...

  5. 【Stage3D学习笔记续】山寨Starling(十一):Touch事件体系

    我们的山寨Starling版本将会在这里停止更新了,主要还是由于时间比较有限,而且我们的山寨版本也很好的完成了他的任务“了解Starling的核心渲染”,接下来的Starling解析我们将会直接阅读S ...

  6. 代码自动生成工具MyGeneration之一(程序员必备工具)

    代码自动生成工具MyGeneration之一(程序员必备工具) 转 分类: C#2008-08-06 18:12 16064人阅读 评论(12) 收藏 举报 工具数据库相关数据库stringbrows ...

  7. server2008服务器iis设置的一些经验

    安装顺序会有一定得影响,如果是先安装IIS,再安装.NET Framework,系统应该可以正常解析.aspx页面:但是,如果是先安装了.NET Framework,再安装IIS,则会由于相关的IIS ...

  8. 使用教程sqlite

    访问地址: http://www.runoob.com/sqlite/sqlite-where-clause.html

  9. ABAP ALV 颜色设置(行,列,单元格)

    BCALV_EDIT_03 http://blog.sina.com.cn/s/blog_a87b19300102who3.html 关于ALV表格颜色,这种需求在项目中会经常用到. 列颜色 列的颜色 ...

  10. dataGridView控件--未将对象引用设置添加到对象的实例

    上篇博客中我完成了如何将控件中的数据导出到excel中dataGridView控件--导出Excel,当我成功导出后,又再次遇到了新问题---未将对象引用设置添加到对象的实例 解决办法:  1 .将代 ...