`
Hnot_Yet
  • 浏览: 11063 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

flex 跨域访问解决方案的总结

阅读更多

其实解决方案网上的资料很多,都是添加一个策略文件crossdomain.xml,本文主要是介绍怎么加这个文件。

crossdomain.xml文件内容(*号部分自己可根据需要进行配置):

<?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="*"/>
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

 

首先,明确一点,A应用要请求B应用的资源,这个策略文件是要添加到B应用的,刚开始,看了某些博文说是要添加到A应用,误导了我很久。

 

下面是正文

1.tomcat服务器的配置方式很简单,直接把文件丢到webapps/ROOT下,前提是保证tomcat 的webapps目录结构完整

 

2.主要讲讲weblogic(我的版本是12C)的配置,有点麻烦,最后的成功是反复测试测出来的,具体的原理本人也不是很懂。

1)给B应用所在的服务器添加一个默认应用C,

也就是只要输入http://xxxx:7001/后面不需要加项目上下文就能访问的应用。我的做法是通过服务器后台console进行配置,这个稍后再说。

新建一个项目index,

index

    --WEB-INF

             --web.xml

    --crossdomain.xml

    --index.jsp

有博文说在index项目根目录下添加weblogic.xml文件,内容设置为

<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1
//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
  <container-descriptor>
    <index-directory-enabled>true</index-directory-enabled>
    <default-mime-type>text/x-cross-domain-policy</default-mime-type>
  </container-descriptor>
  <context-root>/</context-root>
</weblogic-web-app>

 

但我试了没成功,所以我的目录就这么简单,附下文件内容,都很简单的:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN
" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
<welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

 

 

2)配置服务器默认应用
在Weblogic控制台中,Admin Console -> Servers -> DefaultServer(AdminServer) -> Protocols -> HTTP -> Default WebApp Context Root:修改为Web应用的 Java EE Web Context Root(这里即项目名称index),保存,不需要重启Weblogic。
但是在我的实际情况中,我觉得很坑但是很重要很关键的一点是,每次对index项目进行操作,比如stop掉再start、update甚至重启整个weblogic,配置默认应用的操作都要重新来一次,即使默认应用已经是index,你还是需要先把它置空,保存,再填进去,再保存,否则,你是不能通过http://xxxx:7001/去访问index应用的,结果会是404,而http://xxxx:7001/index可以的。
我不懂weblogic的原理,也就不知道这种情况究竟是个BUG还是我自己的问题,待以后再慢慢研究吧
3)如上,如果默认应用能正常访问了,接下来通过A应用去调用B应用,自然也就能够成功,反之,则会报大家遇到的”安全沙箱冲突 “的错误

 

参考资料:

 

http://support.esrichina-bj.cn/2009/0720/456.html
http://linuxstuding.iteye.com/blog/1224107

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    flex跨域访问问题

    CORS是一种现代的跨域访问解决方案,服务器可以通过设置特定的HTTP响应头`Access-Control-Allow-Origin`来允许特定的源进行跨域访问。在Flex中,你可以通过HTTPService或WebService组件配置`crossDomainPolicy`来...

    tomcat跨域解决方案

    ### Tomcat跨域解决方案 #### 一、背景与问题描述 在现代Web开发中,由于浏览器的安全策略限制,不同源之间的资源访问会受到限制,这种现象被称为“同源策略”(Same-Origin Policy)。同源策略是为了保护用户数据...

    weblogic跨域flex

    Flex跨域问题的解决方案主要涉及两个步骤: 1. **创建跨域策略文件**: 创建一个XML文件,例如`crossdomain.xml`,并将其放置在WebLogic服务器的根目录下。这个文件定义了哪些来源(domains)的请求被允许访问...

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

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

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

    ### Java与Flex交互中的常见问题及其解决方案 在Java与Flex技术进行交互的过程中,经常会遇到一些典型的问题,这些问题可能涉及到安全性、数据传输格式以及字符编码等方面。本文将详细探讨以下几个方面: 1. **...

    Flex与java通讯

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

    flex PDF导出分页

    然而,原生的Flex SDK并不直接支持PDF导出,因此开发者需要寻找第三方库或自定义解决方案来实现这一功能。 在描述中提到的“安全沙箱问题”是Flash Player的安全限制之一。Flash Player的安全模型分为多个沙箱,以...

    Flex_API.zip_flex

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

    S2Flex2-1.1.0

    综上所述,S2Flex2-1.1.0是Seasar2框架与Flex集成的理想选择,它为开发者提供了一种高效、灵活的解决方案,促进了富客户端与服务器端的强大协作。通过深入理解和熟练掌握S2Flex2,开发者可以构建出功能强大且用户...

    将flex页面数据导出到excel

    需要注意的是,为了跨域安全,可能需要配置服务器端的CORS策略,允许Flex的请求访问。 在实际开发中,我们还需要考虑性能和数据量的问题。如果数据量非常大,一次性发送所有数据可能会导致网络延迟或服务器压力过大...

    flex安全机制详解

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

    flex-iframe

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

    使用BlazeDS实现flex与java 整合

    四、常见问题与解决方案 1. **跨域问题**:由于Flash Player的安全限制,Flex客户端可能无法直接访问不同域的服务器。解决办法是配置服务器端的crossdomain.xml文件,允许特定域的访问。 2. **性能优化**:如果...

    Pro Flex on Spring

    两者的结合能够提供从前端到后端的完整解决方案。 2. **增强开发效率**:通过将Spring与Flex集成,开发者可以利用Spring的强大功能来简化服务器端的开发工作,同时利用Flex的丰富组件库快速构建出美观且功能强大的...

    Flex企业应用开发实战源代码

    3.2.5 域及跨域访问 99 3.3 Flex Module 101 3.3.1 创建模块 102 3.3.2 模块的编辑与编译 104 3.3.3 模块文件的加载 104 3.3.4 主应用和模块的交互 107 3.4 Flex库文件SWC 107 3.5 Flex编译模式、链接模式与...

    flex的rpc错误整理

    本文主要针对Flex RPC错误进行了整理,特别是涉及到Flash Remoting、HTTP Service和Web Service的常见错误及其解决方案。 **一、Flex Remoting** 1. **Channel definition, mx.messaging.channels.RTMPChannel, ...

    Flex学习—关于Shareobject对象(本地共享对象)

    ShareObject是Flex提供的一种轻量级的数据存储解决方案,它类似于Web浏览器中的Cookie,但具有更大的存储容量和更高的访问速度。ShareObject可以在用户的本地缓存中存储数据,即使应用程序关闭,这些数据也能被保留...

    struts flex 结合使用

    Struts Flex结合使用是一种在Java Web开发中创建富互联网应用程序(RIA)的解决方案。Struts是Apache软件基金会下的一个开源MVC框架,主要用于构建企业级的Web应用,而Flex是Adobe开发的一种基于ActionScript的RIA...

    基于Flex的数据通信技术研究与应用.pdf

    通过HTTPService、WebService和RemoteObject,Flex提供了对不同数据量需求的解决方案,同时,AMF协议的使用确保了大容量数据传输的性能。Flex的这些特性使得开发者能够专注于应用的业务逻辑,而无需过多关心网络通信...

Global site tag (gtag.js) - Google Analytics