`

Flex中实现跨域web service调用时crossdomain.xml的issue

    博客分类:
  • Web
阅读更多

玩过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 version="1.0" encoding="UTF-8"?>
<!DOCTYPE cross-domain-policy SYSTEM
	"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >
<cross-domain-policy>
	<allow-access-from domain="*" secure="true" />
</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 version="1.0" encoding="UTF-8"?>
<!DOCTYPE cross-domain-policy SYSTEM
	"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >
<cross-domain-policy>
	<site-control permitted-cross-domain-policies="all" />
	<allow-access-from domain="*" />
	<allow-http-request-headers-from domain="*" headers="*"/>
</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

分享到:
评论

相关推荐

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

    总结,Flash 跨域策略文件 crossdomain.xml 是控制 Flash 应用程序跨域访问的关键。正确配置 crossdomain.xml 可以确保数据的安全传输,防止恶意跨域攻击。然而,配置不当可能导致敏感信息泄露或被利用,因此在设置...

    crossdomain.xml

    crossdomain.xml用于unity3d生成的webplayer不能读取数据库的问题,用于unity3d生成的webplayer不能读取数据库的问题

    webloigc 中设置 flex crossdomain.xml 文件

    总之,`crossdomain.xml`文件是Flex跨域访问的关键,正确配置它能确保WebLogic上的Flex应用与外部资源安全、顺畅地通信。理解其工作原理并根据实际需求调整策略,是保障应用功能和数据安全的重要环节。

    ArcGIS server tomcat crossdomain.xml

    这通常可以通过修改Tomcat的`web.xml`文件或者在ArcGIS Server的REST服务配置中实现。 在Tomcat的`web.xml`中,你可以添加以下过滤器配置: ```xml &lt;filter-name&gt;CorsFilter &lt;filter-class&gt;org.apache.catalina...

    tomcat跨域解决方案

    为了解决Tomcat在IP和端口不同时引发的跨域问题,可以通过编写并配置`crossDomain.xml`文件来实现跨域支持。下面将详细介绍几种常见的配置方式: ##### 1. 允许特定域名访问 在某些情况下,可能只需要允许来自特定...

    xpire-crossdomain-scanner:扫描crossdomain.xml策略以查找过期的域名

    - **权限范围**:`crossdomain.xml`文件中的`&lt;allow-access-from&gt;`元素定义了允许哪些源进行跨域访问。过宽的范围(如`*`)可能允许任何网站访问,应尽可能限制为实际需要的源。 - **安全策略**:`...

    Flash flex与JS通信

    当Flex应用试图从不同源加载数据或调用JavaScript时,Flash Player会检查目标服务器的根目录下是否存在crossdomain.xml文件。这个文件定义了哪些域被允许访问,以及允许的访问权限。例如,如果一个Flex应用在一个域...

    TongWeb主配置文件tongweb.xml概要说明

    首先,tongweb.xml中的`&lt;auto-deploy&gt;`和`&lt;hot-deploy&gt;`元素分别用于设置应用的自动部署和热部署策略。`&lt;auto-deploy&gt;`元素的`enabled`属性决定是否开启自动部署功能,`jsp-compile`则控制是否在部署时编译JSP文件,...

    crossdomain

    在IT行业中,跨域安全是Web开发中的一个重要概念,...总之,`crossdomain.xml`是解决跨域安全问题的关键工具,特别是在Flex与GIS服务交互的场景中。理解和正确使用这个文件是提升用户体验和保障数据安全的重要一环。

    crossdomain-exploitation-framework:利用过度宽松的 crossdomain.xml 文件所需的一切

    虽然目前还没有多少框架,但您需要利用过度宽松的 crossdomain.xml 文件所需的一切都在这里。 支持的操作系统 卡利 操作系统 下载和设置 root@kali:~ # git clone ...

    Unity3D教程:关于跨域访问的处理2

    在 Unity3D 中,当使用 WWW 访问 Web 服务时,安全策略会阻止跨域的请求访问,会返回类似“Rejected because no crossdomain.xml policy file was found”等错误信息。这是因为 Unity3D 的安全策略限制了跨域访问,...

    Flex跨域问题

    所以当我用Flex 3调用cross domain的web service时,还使用上面的crossdomain.xml文件,结果就报错说security error。于是稍微研究了一下,得到如下解决方案,其实就是要改变crossdomain.xml的内

    flex跨域访问问题

    在服务器上创建或修改`crossdomain.xml`,包含允许Flex应用访问的源信息,例如: ```xml &lt;cross-domain-policy&gt; &lt;allow-access-from domain="*" secure="false"/&gt; &lt;/cross-domain-policy&gt; ``` 这将允许任何...

    BlazeDS入门:HTTP Service

    无论是哪种方案,都需要在服务器端 Web 应用的根目录下配置 crossdomain.xml。 使用服务器端代理,可以简单在服务器端定义 DefaultHTTP,打开 proxy-config.xml,如下配置。其中*号表示 ...

    Cross Domain-CROS(跨域助手).zip

    Cross Domain will help you to deal with cross domain - CORS problem. This is tool helpful when face with cross domain issue.

    weblogic跨域flex

    在Web开发中,跨域问题经常出现,尤其是在使用Adobe Flex作为前端开发工具,与后台服务器(如Oracle WebLogic)交互时。由于浏览器的同源策略限制,不同源的HTTP请求会被阻止,这在Flex应用中会引发问题,因为它们...

    Azure:Blob存储根内部的Crossdomain.xml

    总之,`crossdomain.xml`文件是Azure Blob存储中实现跨域访问的关键,特别是对于使用Flash技术的应用。正确配置该文件可以确保安全并优化用户体验。务必根据实际需求调整策略,平衡安全性与功能性的要求。

    tomcat6跨域访问配置及jar包

    配置tomcat6的跨域访问问题,包含两个xml配置文件clientaccesspolicy.xml,crossdomain.xml,以及两个jar包cors-filter-1.7.1.jar,java-property-utils-1.9.1.jar

    【ASP.NET编程知识】ASP.net WebAPI跨域调用问题的解决方法.docx

    在项目开始时,预计到跨域的问题,并在 Web.Config 文件中添加了配置信息,以允许跨域调用。 然而,在进行 POST 操作调用时,返回 405 错误,无法成功调用。经过研究和测试,发现跨域 POST 调用之前,需要进行 ...

Global site tag (gtag.js) - Google Analytics