Flash/Flex,会涉及到跨域访问URL的安全性问题,最常见的就是出现"访问URL时遇到安全性错误",这也是人们以前常说的安全沙箱问题,解决方案是在目标域名根目录加入跨域策略文件crossdomain.xml,例如:
<?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="*.techmango.com" /> </cross-domain-policy>
这表示目标源允许*.techmango.com下的资源访问该域名下的资源.
问题2:
如果涉及到Socket,跨域策略文件中需要加入to-ports,例如:
<cross-domain-policy> <allow-access-from domain="*" to-ports="507" /> <allow-access-from domain="*.example.com" to-ports="509,516" /> <allow-access-from domain="*.example1.com" to-ports="517-521" /> </cross-domain-policy>
这个策略文件是指定允许哪些域的主机通过那些端口链接.
问题3:
如果在访问Webservice需要用到SOAPHeader验证,跨域策略文件做相应修改,例如:
<cross-domain-policy>
<allow-access-from domain="*.chenfeisoft.com" />
<allow-http-request-headers-from domain="*.techmango.com" headers="*"/>
</cross-domain-policy>
否则会出现DefaultHTTP错误.
问题4:
跨域访问第三方组件提供的数据,如BlazeDS,也会遇到DefaultHTTP错误.这需要服务器及UI端做相应配置,例如:
[Service端]
在服务器端的配置文件中,找到proxy-config.xml文件,里面有一个默认的destination节点: <destination id="DefaultHTTP"> </destination>
默认代理的destination将转向客户端指定的URL进行请求。首先你必须使用dynamic-url属性来指定允许代理的destinations.如下:
把你要访问的URL都配置到dynamic-url节点里。
<destination id="DefaultHTTP">
<properties>
<dynamic-url>http://cnn.com/*</dynamic-url>
<dynamic-url>http://news.yahoo.com/*</dynamic-url>
</properties>
</destination>
修改后,保存。
[UI端]:
为了Flex应用能够访问代理服务,要确保你的应用程序指向正确的service,并设置useProxy 属性为ture.如:
<mx:HTTPService url=”http://cnn.com” useProxy=”true” />
<mx:WebService url=”http://cnn.com/api?wsdl” useProxy=”true” />
编译UI,重新部署。若不能正常读取RSS的信息,检查是否设置了channelSet; channelSet 是HTTPService的属性,一定要设置。一般来讲HTTPService和RemoteObjcet的channelSet是一样的。
=========================================22222
方法:
1.新建一个名为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="master-only"/>
<allow-access-from domain="*" to-ports="517-512" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
2.将这个文件放入C:\Inetpub\wwwroot目录下,
3.在flex项中的CreationComplete函数中增加一行代码Security.loadPolicyFile("crossdomain.xml的路径");,如下:
protected function onCreationCompleteHandler(event:FlexEvent):void{
Security.loadPolicyFile("http://192.169.1.137:88/crossdomain.xml");
}
From http://wangjianwei866.blog.163.com/blog/static/929582320110844142318/
分享到:
相关推荐
当遇到需要跨域访问的需求时,开发者必须采取相应的措施来解决这一问题。 对于使用Apache Tomcat服务器的应用程序来说,跨域问题同样普遍存在。当客户端尝试访问由Tomcat服务器托管的应用程序时,如果客户端所在的...
- **问题分析**:使用默认终端代理时遇到的安全沙箱冲突,解决方法包括修改安全策略文件或更改目标destination以允许所需的URL。 #### 4. No destination with id XXX registered 错误信息:...
在使用ArcGIS API for Flex开发WebGIS应用时,安全沙箱问题是一个重要的考虑因素,它涉及到数据的安全性和应用程序的跨域访问控制。Flex是Adobe Flash平台的一部分,用于创建丰富的互联网应用,而ArcGIS API for ...
跨域访问是Flex与Java通信时必须考虑的安全问题。Flex客户端需要获取服务器的cross-domain.xml文件,以允许跨域请求。服务器端需要设置相应的策略,确保只允许合法的Flex应用程序进行通信。 7. **Data Transfer ...
确保提供的URL是有效的,并且支持跨域访问,因为浏览器的安全策略可能阻止IFrame加载来自不同源的内容。如果需要跨域,可以使用CORS(跨源资源共享)设置。 3. **渲染问题**:在某些情况下,IFrame可能由于渲染问题...
9. **安全性**:考虑到安全问题,使用RemoteObject时可能需要配置跨域策略文件(crossdomain.xml),以允许Flex客户端从不同源访问服务。 10. **性能优化**:通过合理的设计和优化,如减少不必要的网络请求、批量...
另外,考虑到访问网络资源的安全性,如果SWF文件位于远程服务器,记得处理跨域问题。 在这个示例中,"flashCode"可能包含了用于生成和操作FlashPaper内容的ActionScript代码,而"src"目录则包含了Flex项目的源代码...
需要注意的是,为了跨域安全,可能需要配置服务器端的CORS策略,允许Flex的请求访问。 在实际开发中,我们还需要考虑性能和数据量的问题。如果数据量非常大,一次性发送所有数据可能会导致网络延迟或服务器压力过大...
6. **版本兼容性**:使用`flex-iframe-1.4.6`时,需要确保它与当前的Flex SDK和运行时环境兼容。不同的Flex版本可能引入了新的特性和API,因此选择正确的版本对于避免兼容性问题至关重要。 总的来说,`flex-iframe`...
6. **安全性与限制**:由于安全沙箱的存在,不是所有的网页都能在IFrame中正常运行,特别是涉及到跨域访问时。开发者需要了解Flash Player的安全策略,并确保内容符合安全规定。 7. **性能优化**:在Flex应用中嵌入...
Flex与Java之间的通信是开发跨平台应用程序时的关键技术,它允许客户端(通常为Flex应用程序)与服务器端(通常是Java应用程序)进行数据交换。本篇将深入探讨几种主要的通信方式:URLLoader,HTTPService和Socket。...
2. 处理跨域问题:由于安全限制,如果HTML页面不在同一域下,需要设置跨域策略文件以允许Flex加载内容。这通常意味着在服务器上放置一个crossdomain.xml文件,声明允许哪些源进行访问。 3. 监听加载事件:使用...
通过以上步骤,我们可以在Flex和Flash之间实现双向通信,充分利用两者的优势,创造出更具交互性和动态性的应用程序。在实际开发中,可以根据具体需求对交互逻辑进行扩展和优化,以提供更好的用户体验。在提供的...
此外,可能还需要在服务器端设置跨域策略文件(crossdomain.xml)以允许Flex应用访问。 5. **源码分析**:项目中的源码可能包括Flex的MXML文件,定义了HTTPService组件的实例和事件处理函数,以及ActionScript代码...
此外,为了确保安全性和性能,Flex和SWF之间的通信可能会受到沙箱限制。通常,加载的SWF文件会位于不同的安全域中,这可能会影响它们之间的交互。因此,你可能需要设置`LoaderContext`来允许跨域通信,或者在SWF头部...
Flex与Java之间的通讯是Web开发中的重要一环,特别是在构建富互联网应用程序(RIA)时。Flex作为Adobe开发的开源框架,主要用于创建具有丰富用户界面的Web应用,而Java则是一种广泛应用的后端开发语言,提供了强大的...
3. **安全性和跨域问题**: 使用iFrame进行远程访问时,必须注意跨域安全限制。默认情况下,浏览器不允许不同源的脚本相互操作。为了解决这个问题,服务器端需要提供一个跨域策略文件(crossdomain.xml),允许特定...
- 安全限制:跨域加载SWF文件时,需要确保SWF具有正确的跨域策略文件,以防止安全错误。 - 版本兼容:确保你的Flash Player版本能够支持你想要加载的AS2 SWF的所有功能。 - 性能:AS2 SWF在AS3环境中运行可能会...
这可能是由于路径错误、安全限制或兼容性问题导致的。使用浏览器的开发者工具和Flex的调试器可以帮助找出问题。 总结,"flex中嵌入html"是一个涉及Flex组件使用和跨技术集成的话题。IFrame组件是实现这一目标的关键...
### Flex博客阅读器实现知识点详解 #### 一、项目背景及环境配置 ...不仅实现了数据的远程加载,还解决了跨域访问的安全问题。此项目为开发者提供了一个良好的实践案例,有助于理解Flex框架的使用方法及注意事项。