您的位置:首页 > 运维架构 > Tomcat

tomcat7.0配置CORS(跨域资源共享)

2016-10-11 14:10 1066 查看
转载请注明:李锋镝的个人博客 >> http://www.lifengdi.com/article/10009.html

平时我们做前台页面时可能会遇到浏览器以下提示(浏览器控制台):

已阻止跨源请求:同源策略禁止读取位于 http://xxx.xxx.com 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')

这种情况就是跨域请求被阻止,这样可能会导致当前网站的css、js 、ajax请求、font字体等资源出现无法正常访问的问题,这时就涉及到“跨域资源共享”这个问题了。

以下列举跨域问题的几种情形:

URL

说明

是否允许通信

http://www.a.com/a.js http://www.a.com/b.js

同一域名下

允许

http://www.a.com/lab/a.js http://www.a.com/script/b.js

同一域名下不同文件夹

允许

http://www.a.com:8000/a.js http://www.a.com/b.js

同一域名,不同端口

不允许

http://www.a.com/a.js http://www.a.com/b.js

同一域名,不同协议

不允许

http://www.a.com/a.js http://192.168.1.1/b.js

域名和域名对应ip

不允许

http://www.a.com/a.js http://home.a.com/b.js

主域相同,子域不同

不允许

http://www.a.com/a.js http://.a.com/b.js

同一域名,不同二级域名(同上)

不允许(cookie这种情况下也不允许访问)

http://www.cnblogs.com/a.js http://www.a.com/b.js

不同域名

不允许

如果是PHP等语言,这个问题貌似很好解决,只要一行代码就可以搞定,那么Java呢?如何在不修改代码的情况下,实现跨域资源共享?请往下看:

CORS(跨域资源共享)介绍:

CORS(Cross-Origin Resource Sharing) 跨域资源共享

全称:Cross-Origin Resource Sharing

中文意思:跨域资源共享

它 在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一 种浏览器和服务器交互的方式来确定是否允许跨域请求。 它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。

Tomcat下的项目的配置:

首先需要下载cors-filter-1.7.jar,java-property-utils-1.9.jar这两个jar包;

然后配置工程项目中web.xml文件,配置信息如下:

转载请注明:李锋镝的个人博客 >> http://www.lifengdi.com/article/10009.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: