`

解决flex跨域访问

    博客分类:
  • Flex
阅读更多

Flex 跨域访问解决方案

想让swf 文件在一台服务器上运行并且能够访问另一台服务器上的资源,这时就会遇到跨域问题,请看下面的解决方案。

写一个名字为 crossdomain.xml 的XML文件,这个方法是允许任何Flash都可以调用,放到被调用文件的网站根目录下:
view plaincopy to clipboardprint?
<?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="*" /> 
</cross-domain-policy> 
<?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="*" />
</cross-domain-policy>


只让你允许的网站来调用你的数据.
view plaincopy to clipboardprint?
<?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="www.yoursite.com " /> 
<allow-access-from domain="yoursite.com" /> 
<allow-access-from domain="*.k-zone.cn" /> 
</cross-domain-policy> 
<?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="www.yoursite.com " />
<allow-access-from domain="yoursite.com" />
<allow-access-from domain="*.k-zone.cn" />
</cross-domain-policy>

如果使用XMLSocket要把端口号加上
view plaincopy to clipboardprint?
<cross-domain-policy> 
<allow-access-from domain="*.foo.com" to-ports="507,516" /> 
<allow-access-from domain="*.bar.com" to-ports="516-523" /> 
<allow-access-from domain="www.foo.com " to-ports="507,516-523" /> 
<allow-access-from domain="202.117.80.202" to-ports="*" /> 
</cross-domain-policy> 
<cross-domain-policy>
<allow-access-from domain="*.foo.com" to-ports="507,516" />
<allow-access-from domain="*.bar.com" to-ports="516-523" />
<allow-access-from domain="www.foo.com " to-ports="507,516-523" />
<allow-access-from domain="202.117.80.202" to-ports="*" />
</cross-domain-policy>


如果安全策略文件放在根目录,文件名字必须为crossdomain.xml,如果不放在根目录,
要用flash.system.security.loadPolicyFile("http://xcopy.net.cn/crossdomain.xml ")
这样的方法加载安全策略文件。

http://localhost:8080/crossdomain.xml

如果以上还不能成功访问,请再住下看:
请注意代码中的:<param name="allowScriptAccess" value="always"/>
view plaincopy to clipboardprint?
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=512px height=384px 
      codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab "> 
      <param name="movie" value="http://www.xcopy.net.cn/test.swf " /> 
      <param name="quality" value="high" /> 
      <param name="allowScriptAccess" value="always"/>      
      <embed src="http://www.xcopy.net.cn/test.swf " quality="high" bgcolor="#869ca7" 
        width=512px height=384px name="/test" align="middle" 
        type="application/x-shockwave-flash" 
        allowScriptAccess="always" 
        pluginspage="http://www.adobe.com/go/getflashplayer "> 
      </embed> 
</object> 


注意:crossdomain.xml的存放位置,视你的应用服务器类型

1、tomcat:  server根目录/webapps/root.war/crossdomain.xml(测试通过)

2、spring dm server 或者 eclipse virgo web server:   server根目录/pickup/splash.war/crossdomain.xml(测试通过)

其他应用服务器也是放在该服务的管理应用根目录下

分享到:
评论

相关推荐

    flex跨域访问问题

    综上所述,解决Flex跨域访问问题的关键在于理解同源策略,合理利用CORS、策略文件或代理服务,并在服务器端和客户端进行相应的配置。正确配置后,Flex应用就能安全地跨域获取和发送数据了。在实际项目中,应根据具体...

    weblogic跨域flex

    总结来说,解决Flex在WebLogic上的跨域问题,主要是通过创建和发布跨域策略文件,以及在Flex客户端配置正确的策略文件路径。这使得Flex应用能够跨越浏览器的同源策略限制,与WebLogic服务器进行安全的数据交换。理解...

    tomcat跨域解决方案

    当遇到需要跨域访问的需求时,开发者必须采取相应的措施来解决这一问题。 对于使用Apache Tomcat服务器的应用程序来说,跨域问题同样普遍存在。当客户端尝试访问由Tomcat服务器托管的应用程序时,如果客户端所在的...

    Java和Flex交互常见问题及解决

    通常情况下,服务器端需要提供一个CROSSDOMAIN.XML文件,该文件声明了允许哪些域名或IP地址进行跨域访问。 - 在客户端(Java应用程序)中,可以通过编程方式设置Socket的安全策略,允许特定的域名或IP地址进行访问...

    ArcGIS API for Flex开发WebGIS中的安全沙箱问题

    在使用ArcGIS API for Flex开发WebGIS应用时,安全沙箱问题是一个重要的考虑因素,它涉及到数据的安全性和应用程序的跨域访问控制。Flex是Adobe Flash平台的一部分,用于创建丰富的互联网应用,而ArcGIS API for ...

    flex本地安全域设置

    本篇将详细介绍如何通过“flex本地安全域设置”来解决Flex安全沙箱的问题,以及为何无需到Adobe官网设置全局安全域。 1. **Flex安全沙箱**:Flex应用运行在两种安全沙箱中,分别是“本地trusted”和“网络sandbox”...

    Flex与java通讯

    跨域访问是Flex与Java通信时必须考虑的安全问题。Flex客户端需要获取服务器的cross-domain.xml文件,以允许跨域请求。服务器端需要设置相应的策略,确保只允许合法的Flex应用程序进行通信。 7. **Data Transfer ...

    flex PDF导出分页

    在不同沙箱之间进行通信时,需要遵循特定的规则,例如跨域访问。当Flex应用尝试导出PDF并涉及到跨域数据时,可能会遇到安全沙箱问题,即使配置了`crossdomain.xml`文件,也可能无法完全解决这个问题。 为了解决这个...

    Flex项目Google IFrame使用

    通过分析和学习"IFrameDemo",你应该能够解决Flex项目中Google IFrame的消失问题,并对如何在Flex应用中有效地使用IFrame有更深入的理解。记得在实际应用中不断测试和优化,确保IFrame的稳定性和性能。

    Flex_API.zip_flex

    9. **访问控制和安全性**:如果涉及到网络通信,API还会涵盖安全策略文件和跨域访问控制,以确保应用的数据安全。 10. **调试和性能优化**:Flex提供了一些工具和技术来帮助开发者调试代码和优化应用性能,API文档...

    flex socket解决安全沙漏

    综上所述,解决Flex Socket中的安全沙漏问题涉及到服务器和客户端两方面的配置。理解并正确应用跨域策略是关键,同时,熟悉Flex的Socket类和Java的Socket编程也非常重要。通过这些方法,可以克服安全限制,实现安全...

    flex项目整合 jsp,编译错误解决方案

    “flex编译问题,访问不了jsp解决方案.txt”这个文件可能包含了具体的错误信息和解决步骤,打开这个文件,按照其中的指导进行操作,通常可以解决大部分问题。记住,理解和掌握问题的根本原因才是关键,这样才能避免...

    flex安全机制详解

    Flash Player通过检查目标域下的安全策略文件来判断是否允许跨域访问。这些安全策略文件通常位于目标域的根目录下,名称为`crossdomain.xml`。 #### 三、Flash中的通信方式 在Flex中,主要通过两种方式实现通信: ...

    S2Flex2-1.1.0

    4. **安全性**:S2Flex2考虑到了跨域安全问题,提供了安全的通信机制,保护了服务器资源不被非法访问。 5. **易用性**:S2Flex2提供了一系列的API和示例代码,帮助开发者快速上手,缩短学习曲线。 在实际项目中,...

    Flex 安全沙箱问题 简单处理方法

    Flex安全沙箱问题是一个在开发基于...总的来说,解决Flex安全沙箱问题需要深入理解沙箱机制、跨域策略和`crossdomain.xml`文件的配置,同时关注服务器端的实现细节,以确保应用程序既能正常运行,又能保障用户的安全。

    flex-iframe

    在IT行业中,`flex-iframe`是一个用于在Adobe Flex应用程序中嵌入HTML内容的解决方案。Flex是一种基于ActionScript和MXML的开源框架,主要用于构建富互联网应用(RIA)。`iframe`,即内联框架,是HTML中用于在单个...

    flex&flash相互调用

    首先,在Flash中定义一个可外部访问的函数,然后在Flex中通过Flash的` ExternalInterface.call()`方法来调用这个函数。 2. **Flash调用Flex**: 反之,如果需要从Flash调用Flex的功能,可以通过Flex暴露的接口实现...

    flex 沙箱安全问题

    - **crossdomain.xml** 文件:它是一种XML格式的文件,用于定义哪些域可以跨域访问当前域中的资源。此文件需要放置在服务器的根目录下或者指定路径下。 #### 四、crossdomain.xml 配置详解 在提供的部分代码示例...

    Flex_RPC错误大全

    - **问题分析**:安全沙箱冲突,通常发生在尝试跨域访问资源而未正确配置安全策略文件的情况下。 #### 7. Destination does not exist 错误信息:“RPCFault faultString="MessagingErrormessage='Destination '...

Global site tag (gtag.js) - Google Analytics