`

Flex的crossdomain.xml问题

阅读更多

玩过Flex或者Flash的同学都知道,如果想要在Flash里面跨域获取数据,就必须在对方server上配置crossdomain.xml。具体来说,比如你的Flash在domain A下面,而你想要访问domain B暴露的web service,那么domain B的server根目录下必须要有一个crossdomain.xml文件来配置说你有这个权限。这个是Flash Player的安全限制。

 

对于Flash Player 9之前的版本,这个crossdomain.xml文件大概如下:

 

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE cross-domain-policy SYSTEM   
  3.     "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >  
  4. <cross-domain-policy>  
  5.     <allow-access-from domain="*" secure="true" />  
  6. </cross-domain-policy>  

以上配置允许所有domain访问当前server所暴露的数据(比如web service)。你可以在domain属性里面指定特殊的规则。secure属性用来设置你所暴露的数据是否走https协议。

 

 

但是对于Flash Player 9而言,crossdomain.xml文件内容出现了较大的变化,原因是Flash Player 9的security机制有所改变。所以当我用Flex 3调用cross domain的web service时,还使用上面的crossdomain.xml文件,结果就报错说security error。于是稍微研究了一下,得到如下解决方案,其实就是要改变crossdomain.xml的内容:

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE cross-domain-policy SYSTEM   
  3.     "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >  
  4. <cross-domain-policy>  
  5.     <site-control permitted-cross-domain-policies="all" />  
  6.     <allow-access-from domain="*" />  
  7.     <allow-http-request-headers-from domain="*" headers="*"/>  
  8. </cross-domain-policy>  

 以上是Flash Player 9所要求的crossdomain.xml的内容。可以看到多了两个tag。其中site-control是可选的,但是allow-http-request-headers-from对于cross domain的web service确实必须的。如果没有允许header,就会像我之前一样报错。这些配置项的具体含义以及其他可选配置项,可以参考http://www.adobe.com/devnet/flashplayer/articles/flash_player_9_security.pdf

分享到:
评论

相关推荐

    webloigc 中设置 flex crossdomain.xml 文件

    NULL 博文链接:https://wanller.iteye.com/blog/1106243

    Flex跨域问题

    Flex跨域问题,对于Flash Player 而言,crossdomain.xml文件内容出现了较大的变化,原因是Flash Player 9的security机制有所改变。所以当我用Flex 3调用cross domain的web service时,还使用上面的crossdomain.xml...

    crossdomain

    flex访问地图的时候会遇到安全沙箱问题,引起地图不能访问。这里的crossdomain.xml放在服务器上就可解决这个问题。需要的请下载……

    在Flex中发布地图 程序报错 SecurityError: Error #2048: 安全沙箱冲突,只需要下载添加这个就可以

    真正解决我问题的操作是这样的,在安装 arcgis后,C:\Inetpub\wwwroot\ArcGis\rest\的下面有个crossdomain.xml,把这个文件复制到C:\Inetpub\wwwroot的下面就可以了。 或者直接下载文件复制到里面就可以解决。

    Flash flex与JS通信

    flex 与 Js 通信 相互调用;用于flex 与JS 中的 方法通信,其中的crossdomain.xml 属于安全策略问题

    flex PDF导出分页

    flex pdf导出功能,具有分页效果。解决自带save()方法中的安全沙箱问题。ps :crossdomain.xml也解决不了,最后换的另一种的方式

    ArcGIS_FlexView指南(中文)

    36 6.3.1 crossdomain.xml ..................................................................................................... 36 6.3.2 网络资源代理..................................

    FlashSec:存储库旨在编译可在渗透测试期间使用的脚本和工具,以评估不同闪存相关场景的安全性

    Crossdomain.mxml:用 FLEX 编写的脚本,利用宽松的跨域 Flash 策略文件向目标网站发出任意请求。 要编译,只需下载 FLEX SDK(可从)并运行mxmlc : $ ./mxmlc Crossdomain.mxml Loading configuration file C:\...

    flex 安全沙箱问题备忘

    当a.com中的flash要访问b.com中的资源(如图片等)时,flex会提示安全沙箱错误!

    UCenter1.6头像上传破解版源码(uc_camera_v1.0)

    crossdomain.xml flash域安全配置(如上) index.php Web服务器端执行返回html页面以供浏览器解析加载camera.swf 3.编译swf与部署Web端: 运行测试头像上传效果:把第2项的5个文件上传到Web端(须支持php),记住...

    Flex-Puzzle:仿美图秀秀在线拼图(Flex版)

    Flex-Puzzle 仿美图秀秀在线拼图(Flex版) 1.API接口参见美图秀秀 2.配置项可见puzzle.js ...loadPhoto的图片地址服务器上需要有crossdomain.xml文件,否则图片只可以显示不可以进行像素级操作(截图,保存等)

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本...Serialize Your Deck with Positron [XML Serialization, XSD, C#]...

Global site tag (gtag.js) - Google Analytics