`
hjwromantic
  • 浏览: 27695 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

Flex跨域访问沙箱问题解决

 
阅读更多

当Flex访问Web服务请求(你的项目中某个serlvet等资源)时,在本地能够正常访问,当部署到web容器中发布为web服务后,再请求服务端的业务方法时候,此时就会被拒绝访问,Flex客户端会出现连接超时等问题,这就是Flex跨域访问的沙箱问题,为了解决Flex跨域访问web中的业务服务问题,可采用如下处理方法:

我们知道Flex跨域访问被拒绝是因为提供服务方没有配置安全策略文件,即crossdomain.xml,如果你不想用crossdomain.xml就要用到代理,即自己写一个后台读取webservice,然后提供给自己的flex客户端应用,因为在运行环境中,要Flex跨域必须要有策略文件。

以下是我项目应用的策略文件的写法格式:(当然这个文件内容可根据你项目的集体要求来配置相应的内容

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <!-- 
    permitted-cross-domain-policies属性值
    none  不允许使用 loadPolicyFile方法加载任何策略文件(包含主策略文件)
	master-only 只允许使用主策略文件,默认属性
	by-content-type允许使用 loadPolicyFile方法加载http/https协议下Content-Type为text/x-cross-domain-policy的文件作为跨域策略文件
	by-ftp-filename允许使用 loadPolicyFile 方法加载FTP协议下的文件名为  crossdomain .xml的文件作为跨域策略文件
     -->
	<site-control permitted-cross-domain-policies="by-content-type" />
	<allow-access-from domain="*" to-ports="*"/>
	<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>

表示外部域可以依据策略文件设定的规则来访问该服务。crossdomain.xml的放置目录问题,可放置在:

1、如果放置crossdomain.xml目录是容器的根目录,那么可以通过以下的url访问crossdomain.xml:

http://localhost:8080/crossdomain.xml

也就是说如果你的web应用部署在Tomcat的的话,请将crossdomain.xml文件放在webapps下的ROOT项目中即可。如果是其他web容器按照以上规则来定。

2、如果crossdomain.xml不是放在根目录下,而是在某个web应用程序下的话,在flex中就需要在初始化的时候调用一下方法:(这样就可以再同一个web容器下部署多个不一样的主策略规则,本人使用这方式自定义规则文件的位置)

Security.loadPolicyFile("http://localhost:8080/jplogic/crossdomain.xml");

其中jplogic为webapp的名称,可以根据自己项目名称来定

这样,在你项目中的动态页面(jsp.asp中嵌入Flex时候,当用户请求该资源的时候,那么这个时候如果jsp或者asp中的Flex需要请求其他站内资源(servlet)的时候就不会出现跨域访问问题了)。

如下是我在项目中关于该问题处理效果图:

分享到:
评论

相关推荐

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

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

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

    开发者需要确保在使用这些功能时遵守相应的沙箱规则,并且可能需要通过`crossdomain.xml`文件来启用跨域访问。 总的来说,解决Flex安全沙箱问题需要深入理解沙箱机制、跨域策略和`crossdomain.xml`文件的配置,同时...

    全面认识Flex安全沙箱

    Flex安全沙箱是Adobe Flex应用程序在运行时遵循的一套安全机制,旨在保护用户的数据和系统安全。这个概念是在Flex 4之后尤其受到关注,因为当时在Internet Explorer中出现了与安全沙箱相关的挑战。沙箱模型类似于...

    flex 沙箱安全问题

    ### flex沙箱安全问题 #### 一、概述 在Flex应用程序开发过程中,远程对象(RemoteObject)服务常常被用于客户端与服务器之间的数据交互。但在实际应用中,由于跨域策略的限制,可能会遇到Error #2048这样的错误...

    源于FLEX中的安全沙箱问题

    【标题】:“源于FLEX中的安全沙箱问题” 【描述】:在FLASH PLAYER中,安全沙箱是一个关键的安全性组件,它将资源逻辑地分组,以限制各个FLASH应用程序能够执行的操作和访问的资源。安全沙箱确保了各应用程序与...

    flex 开发实例 用于flex 沙箱的控制

    总结来说,这个Flex开发实例涵盖了Flex沙箱控制、事件处理、与Java Servlet的交互以及跨域策略等多个知识点。通过对WeatherDemo的深入学习,开发者可以更好地理解和掌握如何在Flex环境中安全、有效地实现富客户端...

    lex for arcgis java tomcat环境不能跨域问题 (安全沙箱问题2048

    总的来说,解决Flex for ArcGIS在Java Tomcat环境下的跨域问题,主要涉及理解浏览器的同源策略,正确配置`crossdomain.xml`文件,并确保服务器重启以使更改生效。对于开发和测试环境,广泛接受的权限设置可能是合适...

    电信设备-克服flex安全沙箱限制的视频像素信息采集存储的方法.zip

    综上所述,克服Flex安全沙箱限制的视频像素信息采集存储涉及对Flex框架的理解、合理的API使用、跨域策略配置、多线程处理以及选择合适的存储方案。在实际开发中,开发者需要在保证安全性和功能性的平衡点上找到最佳...

    flex 安全沙箱问题备忘

    通过这行代码,***域下的Flash应用会提前加载***域的策略文件,确保后续的跨域访问请求符合安全沙箱的要求。这样,当Flash应用尝试访问***资源时,由于已加载的crossdomain.xml策略文件的作用,访问请求不会被拒绝,...

    ActionScript 3.0安全沙箱及相关问题资料

    《Flex与.NET基于Socket的网络连接 收藏 .txt》和《Flex flash_player9 沙箱安全解决方案.txt》可能讨论了Flex应用程序与.NET服务通过Socket通信时如何处理安全沙箱问题,以及在Flash Player 9中如何解决这些问题的...

    flex本地安全域设置

    综上所述,通过本地安全域设置,Flex开发者可以方便地解决安全沙箱问题,使得应用能够顺利运行并访问必要的本地资源。使用FlexSecurity.bat这样的工具,可以简化这个过程,无需用户参与或访问Adobe官网,提升了用户...

    flex PDF导出分页

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

    flex安全机制详解

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

    Flex_RPC错误大全

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

    非常不错的Flex播放器

    8. **安全性**:考虑到隐私问题,Flex播放器使用安全沙箱机制来限制不同源的音频数据访问。在处理跨域音频时,需要遵循相关的安全策略。 9. **事件驱动编程**:Flex中的大部分功能都是基于事件驱动的,开发者需要...

    Flex与Flash相互调用

    为了使Flash能够调用Flex中的函数,我们需要在Flex中声明这些函数为公开的,这样它们才能被外部访问。例如,我们定义一个名为`flexFunction`的函数: ```actionscript public function flexFunction(message:String...

    flex&flash相互调用

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

    Flex与Java通信

    9. **安全沙箱**:跨域问题在Flex与Java通信中也需要注意。在Tomcat的`\webapps\ROOT`目录下添加`crossdomain.xml`文件,允许来自任何域名的访问,以解决安全沙箱限制。 总结起来,实现Flex与Java通信涉及多个步骤...

    flex的rpc错误整理

    错误#2048提示安全沙箱冲突,这通常发生在跨域访问时。确保已正确配置跨域策略文件以允许Flex与后端服务通信。 7. **RPC Fault faultString="MessagingError message='Destination 'fluorine' either does not ...

    Flex 与 html 交互 调用本地html

    这通常涉及到Flash Player或Adobe AIR环境,因为它们允许Flex与本地操作系统进行交互,包括访问本地文件系统。 描述提到这是一个使用Flex Builder 3(fb3)修改过的例子,强调了实现过程中需要注意的事项,并提示在...

Global site tag (gtag.js) - Google Analytics