`
shlei
  • 浏览: 287962 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用crossdomain.xml让Flash可以跨域传输数据

    博客分类:
  • FLEX
阅读更多
注:两个不相干的项目中,一个项目的Flex调用另一个项目的Java项目的Action一定会遇到这样的问题!

    今天调试Flex时报如下错误:

  警告: 未能从 http://192.168.1.10/crossdomain.xml 中加载策略文件

  出现此类问题是安全策略文件出错所致

  例如:

  位于www.mzwu.com域中的SWF文件要访问www.163.com的文件时,SWF首 先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置 了允许www.mzwu.com域访问,那么通信正常。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。

  crossdomain.xml的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性 domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。

  crossdomain.xml 策略文件:

  
<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy> 
<allow-access-from domain="*" /> 
</cross-domain-policy>


最后,crossdomain.xml的位置很重要,把它放在你要访问的Tomcat服务器的Tomcat路径/webapps/root下面就可以了。

JBOSS下:
在jboss4.2中设置crossdomain.xml应该放在[jboss home]/server/default/deploy/jboss-web.deployer/Root.war下。
这个目录是jboss的根目录,可以通过以下的url访问crossdomain.xml:
http://domainname:8080/crossdomain.xml

如果crossdomain.xml不是放在根目录下,而是在某个webapp下面,在flex中就需要在初始化的时候用
Security.loadPolicyFile("http://domainname:8080/dir/crossdomain.xml");


问题:警告: 域 192.168.10.26 没有指定元策略。将应用默认元策略 'master-only'。此配置已停用。请访问 http://www.adobe.com/go/strict_policy_files_cn 以解决此问题。

解决方案:
Security.loadPolicyFile("http://xxx.xxx.xxx.xxx/crossdomain.xml");

路径就是你的crossdomain.xml文件在服务器上的路径。
Security.allowDomain("*");

这句不加也可以。

如果还没有解决您的问题,请看这里:Flex解决跨域问题的策略文件的写法

from http://app.cnzer.cn/html-78292-1.html
http://shang.iteye.com/blog/419918
详细信息参考 http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e08.html
分享到:
评论
2 楼 shlei 2011-03-07  
rockyf 写道
还是不行啊,
还有你说的:Security.loadPolicyFile("http://xxx.xxx.xxx.xxx/crossdomain.xml");
没指定端口号也行的啊?
我是放在哪个目录下都不行的、、、悲剧啊

crossdomain.xml要放到你项目的Tomcat/webapps/ROOT下面,放在其他地方不行的。我也试了很多次,可以的。
1 楼 rockyf 2011-03-06  
还是不行啊,
还有你说的:Security.loadPolicyFile("http://xxx.xxx.xxx.xxx/crossdomain.xml");
没指定端口号也行的啊?
我是放在哪个目录下都不行的、、、悲剧啊

相关推荐

    flash跨域策略文件crossdomain.xml配置详解以及防范措施.docx

    全的配置,应避免使用]2)以星...正确配置 crossdomain.xml 可以确保数据的安全传输,防止恶意跨域攻击。然而,配置不当可能导致敏感信息泄露或被利用,因此在设置时务必谨慎,遵循最佳实践,以保护网站和用户的安全。

    Flash安全的一些总结WEB安全电脑资料.doc

    Flash安全涉及多个方面,其中最重要的是跨域通信的管理,主要通过`crossdomain.xml`文件进行控制。这个文件是Flash应用程序进行跨域访问时的权限配置文件,它定义了哪些域的Flash内容可以访问和交互数据。以下是关于...

    解决xmlsocket 需要的843端口

    在实际开发中,确保843端口的开放和正确配置`crossdomain.xml`是使用XMLSocket和Flash Player进行跨域通信的关键步骤。这需要开发者对网络安全有深入理解,合理设定策略以平衡功能性和安全性。同时,Python程序员还...

    支持Flash安全策略转发的服务器端

    首先,Flash安全策略,也称为Flash跨域政策,是为了防止恶意脚本通过Flash Player获取或操作用户数据而设立的一种安全措施。当Flash内容试图连接到不同源的服务器时,Flash Player会向目标服务器发送一个安全策略...

    flash读取xml文档

    在服务器端设置适当的Cross-Origin Resource Sharing (CORS)策略或使用crossdomain.xml文件。 - 错误处理:加载或解析XML时可能会遇到错误,所以需要添加适当的错误处理机制,如监听ErrorEvent.ERROR事件。 六、...

    flash 显示 xml文件中指定的 图片

    注意跨域问题,如果图片资源不在同一域名下,可能需要服务器端设置允许跨域访问的策略文件(crossdomain.xml)。 通过以上步骤,我们可以实现在Flash中利用XML动态加载和显示图片的功能。这不仅提供了数据的灵活性...

    flex socket解决安全沙漏

    在尝试与远程服务器建立Socket连接时,如果不在跨域策略文件(crossdomain.xml)的允许范围内,Flash Player会阻止这种行为,这就是所谓的“安全沙漏问题”。 解决安全沙漏问题通常需要以下步骤: 1. **配置服务器...

    web-socket-js-1.0.2.zip_flash js websocket_web scoket.js_websock

    1. **设置Flash安全策略**:由于Flash的安全限制,需要在服务器端设置跨域策略文件crossdomain.xml,允许Flash进行Socket通信。 2. **检测WebSocket支持**:库会自动检测WebSocket支持,但在实际应用中,还应提供...

    深入理解ApplicationDomain和SecurityDomain

    为了允许不同安全域的内容进行通信,可以使用`Security.allowDomain()`方法或`crossdomain.xml`文件。这两种方法都可以实现跨域数据传输,但具体实现方式有所不同。 ##### 1.5 合并安全域 在某些情况下,可能需要...

    FLASH通过XMLSocket与VB后台通信代码

    开发者需要在服务器端设置Crossdomain.xml文件,明确允许哪些源可以访问。 8. **调试与优化**: - 开发过程中,可以使用Flash的Trace语句和VB的调试工具来跟踪数据流,定位问题。优化时要考虑网络延迟、数据压缩和...

    javascript_to_flash_as3.0.rar

    这意味着JavaScript和Flash文件必须来自同一个域名,或者Flash文件需要设置正确的跨域策略文件(crossdomain.xml)。 3. **数据传递**:JavaScript和AS3.0之间可以传递基本类型的数据,如字符串、数字和布尔值。...

    c#与flash进行socket通信

    在Flash Player的安全策略中,本地文件只能连接到同源的服务器,而跨域访问则需要服务器返回特定的跨域策略文件(cross-domain.xml)。这个文件定义了哪些来源的Flash内容可以连接到该服务器,以及可以执行哪些操作...

    Flex与JS交互

    1. **理解Flash Player的安全模型**:Flash Player有严格的同源策略,了解如何配置Crossdomain.xml文件以允许跨域通信至关重要。 2. **调试技巧**:使用Flash Professional或Flex Builder的调试工具,以及浏览器的...

    Flashas3发送和接收文件

    为了使Flash能够与不同源的服务器通信,服务器需要提供一个crossdomain.xml文件,允许AS3进行请求。 7. **文件上传** 文件上传通常涉及FileReference类,它允许用户选择本地文件,然后通过HTTP POST请求发送到...

    在两个Silverlight应用间数据通信(包括与Flash通信)

    例如,使用跨域策略文件(crossdomain.xml)允许不同源之间的通信。此外,为了确保数据安全,可能需要加密和解密传输的数据。 总之,这个项目或文章探讨的是如何在不同类型的客户端技术之间建立数据通道,这涉及到...

    qq炫酷务网站源码

    - **跨域安全**:通过设置crossdomain.xml来确保数据的安全传输,防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。 了解和使用这个源码,开发者需要具备一定的ASP编程基础,熟悉Flash开发工具,以及对前端技术和...

Global site tag (gtag.js) - Google Analytics