其实解决方案网上的资料很多,都是添加一个策略文件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)配置服务器默认应用
参考资料: