- 浏览: 336771 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wangjun0603:
学习了,写的真好!
native2ascii的简单应用 -
qq672076266:
...
native2ascii的简单应用 -
loyalboys:
...
native2ascii的简单应用 -
hanjinting1004:
...
Flex开发者需要知道的10件事 -
管好你家猫:
学了,文章,
native2ascii的简单应用
一、概述
-->next stone :
crossdomain.xml是放在服务器端的文件,什么叫做放在服务器端,就是放在你要获取的文件的所在的那台机器的那个域名下面。
-->next stone :
http://www.xiaonei.com/crossdomain.xml 这是很标准的做法,我就让我自己的域以及我的子域来获取数据。 淘宝的: http://www.taobao.com/crossdomain.xml 红色的一行是淘宝的CDN所在的域,所谓内容分发网络。 绿色的一行是淘宝的广告商了,http://www.allyes.com/好耶广告网络,只是不清楚是不是仍然再卖淘宝的广告? 多看几个大网站的crossdomain.xml,也可以知道可能是什么网络广告商给它们在打广告。 比如彭博:http://www.bloomberg.com/crossdomain.xml 红色的就太不专业了,把内部IP都给暴露了。。。。。。 绿色的是彭博的广告商:PointRoll 路透的: http://www.reuters.com/crossdomain.xml 广告给了doubleclick来做(绿色) 2mdn.net看不懂是干嘛的,大概是个cdn吧。 滥情的facebook: http://www.facebook.com/crossdomain.xml 这么多!有子域,有CDN,有thefacebook(facebook的旧域名吧?) 还是google的专业: 蓝色行的意思是,要符合要求的文件你才能取,不管你是哪来的flash数据请求。符合要求的文档必须满足:
使用crossdomain.xml跨域传输数据
位于www.mzwu.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 地址、一个确切的域或一个通配符域(任何域)。下边是两个例子:
<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>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
第二个例子允许任何域的访问。对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中!
?
<cross-domain-policy>
<allow-access-from domain=”*.xiaonei.com”/>
<allow-access-from domain=”xiaonei.com”/>
</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>
<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>
<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>
<!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>
<!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>
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文件,若安全机制设置为允许访问,则访问成功。
引用:
http://www.mzwu.com/article.asp?id=975
http://www.crossdomainxml.org/
http://hi.baidu.com/lotusxyhf/blog/item/f1c08a58b5771e88810a1870.html
发表评论
-
应用避免访问浏览器缓存
2011-05-12 17:33 1388项目经常遇到这么个问题:程序做了改动之后,由于浏览 ... -
flex皮肤资源
2011-05-05 15:28 1299如果要找flex皮肤,这里的皮肤真是多。http: ... -
flex利用asdoc生成doc和制作chm
2011-04-02 17:33 1630How to set up ASDoc in Flex Bui ... -
restrict的应用实例
2011-04-02 11:54 11321. 限制某个字符的输入,用符号 ^ 跟上要限制的 ... -
flex中as、instanceof、is、 typeof用法
2011-03-24 09:48 4556“as” 我主要用它做类型转化 假设有一个类叫做 ... -
在Chart上画平均线的三种方法
2011-02-16 14:52 1425在Chart上画平均线的三种方法 ... -
Flex Frameworks
2010-11-12 15:32 1000Some say that if a t ... -
flex4国际化
2010-11-11 16:56 2125国际化变得如此简单 <?xml versi ... -
使用ToolTipManager自定义tooltip
2010-11-05 14:52 2621直接贴代码,一看就懂。 <?xml version=& ... -
flex 校验
2010-11-05 14:41 1035①flex中的校验可以使用mx.validator ... -
Flex中的fx、mx和s命名空间
2010-11-05 13:12 3390Flex 4带给我们的 ... -
socket中writeUTF和writeUTFBytes的区别
2010-11-03 10:25 2797Q:用writeUTF发送数据的时候,后台多 ... -
修改flex默认loading
2010-10-18 13:51 2525一: SWF Flex 2 PreloaderSWF ... -
AIR文件操作
2010-09-26 10:01 2928AIR文件操作(一):AIR文件基础 AI ... -
ActionScript 3.0 Socket编程
2010-09-17 17:25 1171在使用ActionScript3.0进行编程的时候需要注 ... -
as 对象深度拷贝
2010-08-20 10:32 992这是一篇关于as3中对象深度拷贝的问题今天自己总结下,便 ... -
Create a FlexUnit TestCase
2010-04-29 20:34 1045Problem How to create a Fle ... -
as3corelib
2010-04-29 20:10 1487google code :http://code. ... -
FusionCharts
2010-04-28 19:26 2370无意中接触到这个产品FusionCharts,3D ... -
flex datagrid自动换行
2010-04-19 17:10 2887以为datagrid的自动换行有多复杂,其实 ...
相关推荐
Javascript跨域传输数据存在很大的限制,通过普通的方式很难突破这个限制,通常使用API来跨域,更经常看到的是通过页面代理的方式访问,这样实现起来很繁琐,效率也很低,所以也就搞出了这个插件,通过Flash来实现...
Uploadify支持跨域上传,这使得它可以在不同源的Web应用之间安全地传输数据,解决了传统的文件上传因同源策略限制而遇到的问题。 跨域上传的核心在于设置合适的HTTP头部,尤其是`Access-Control-Allow-Origin`头部...
全的配置,应避免使用]2)以星...正确配置 crossdomain.xml 可以确保数据的安全传输,防止恶意跨域攻击。然而,配置不当可能导致敏感信息泄露或被利用,因此在设置时务必谨慎,遵循最佳实践,以保护网站和用户的安全。
详细使用方法请参考《简单而方便,使用Flash为Javascript AJAX实现跨域传输数据。》 $(document).ready(function() { $.ajaxf.install('/Files/zsea/flash4ajax.swf'); $("#fdemo_get").click(function() { ...
SWF(ShockWave Flash)文件格式是Adobe Systems开发的一种用于在网络上传输多媒体内容的格式,主要应用于动画、游戏和交互式应用程序。这份"SWF File Format Specification Version 10"详细介绍了版本10的SWF文件...
3. 数据格式:虽然名字中有XML,但实际AJAX传输的数据可以是XML、JSON、HTML或者其他文本格式。JSON由于其简洁性和易于解析,现在更常被使用。 4. DOM操作:当接收到服务器响应后,通常需要使用DOM来动态修改网页...
- **XML与JSON**:Ajax早期使用XML传输数据,但现在更多使用JSON,因为JSON更轻量且易于解析。 - **DOM操作**:Ajax获取到数据后,会使用JavaScript操作DOM(文档对象模型)来更新网页内容。 2. **创建Ajax请求**...
利用iframe和location.hash,数据直接暴露在了url中,数据容量和类型都有限 3.Flash LocalConnection, 对象可在一个 SWF 文件中或多个 SWF 文件间进行通信, 只要 在同一客户端就行,跨应用程序, 可以跨域。...
3. 跨域策略:LocalConnection不能用于跨域通信,防止恶意SWF文件窃取或篡改其他域的数据。 四、常见问题及解决方案 1. 数据类型:LocalConnection只能传输字符串,如果需要传递复杂数据类型,需要序列化为字符串...
8. **进度指示**:现代的Ajax API允许我们获取传输进度,为用户提供更好的反馈,例如显示加载进度条。 9. **安全性**:使用Ajax时需注意安全问题,比如防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。 10. **...
在文件上传领域,SWF常用于处理跨域问题和大文件分块上传。然而,由于安全性、兼容性和性能等问题,现在SWF已经逐渐被HTML5技术取代。因此,虽然这个教程可能涉及了SWF解决方案,但目前的开发实践中,我们更多地依赖...
RTMP是由Adobe Systems开发的协议,主要用于在Internet上传输音频、视频和数据。它允许内容提供商实时地向观众提供高质量的视频内容。RTMP协议主要应用于Flash Player,虽然现在Flash已逐渐被淘汰,但在某些场景下,...
这两种方法都可以实现跨域数据传输,但具体实现方式有所不同。 ##### 1.5 合并安全域 在某些情况下,可能需要将多个安全域合并为一个更大的安全域,以便允许这些域中的内容自由交互。这可以通过设置相应的信任关系...
4. 数据传输和安全性 LocalConnection可以传递基本类型的数据,如字符串、数字和布尔值,但它不支持复杂对象或自定义类。此外,由于安全限制,LocalConnection不允许跨域访问敏感数据,以免引发隐私问题。 5. 方法...
由于Flash不直接支持与服务器端的.NET框架进行通信,因此通常采用一种间接的方式——利用XML(Extensible Markup Language)作为数据传输的媒介。 XML是一种轻量级的、用于描述数据的标记语言,它允许数据以结构化...
因此,优化iFrame的加载时间、减少不必要的数据传输以及合理设计页面结构都是非常重要的。 6. **IFrameCommTest**: 根据提供的压缩包文件名称,这可能是用于测试iFrame通信的示例代码或工具。这个测试可能包括了...
此外,SWFObject还支持跨域数据传输、Flash Player版本检测以及自定义回退机制等功能,使其成为处理Flash内容时不可或缺的工具。然而,随着HTML5和WebGL等现代Web技术的发展,Flash的使用正在逐渐减少,但SWFObject...
8. **跨域问题**:由于同源策略的限制,如果FLV文件和SWF播放器不在同一个域名下,可能需要服务器端设置CORS(跨源资源共享)以允许跨域访问。 9. **兼容性考虑**:虽然现代浏览器更多地支持HTML5的视频播放,但...
WebSocket是一种在客户端和服务器之间建立持久连接的网络协议,它为实时数据传输提供了高效、双向通信的能力。在现代Web开发中,WebSocket已经成为实现聊天应用、实时图表、在线游戏等需要实时交互功能的重要技术。...