Access-Control-Allow-Origin跨域请求处理
今天在看新项目的时候,发现很多的 Controller 中都有一个
response.setHeader("Access-Control-Allow-Origin","*"); 的响应消息头的设置,
一时有些摸不着头脑,之后就求助与互联网,原来这是设置前端跨域请求的(请原谅我原来只用了jsonp这种ajax跨域请求方式),
通过观看博客 :https://blog.csdn.net/hehexiaoxia/article/details/61916737 ,
了解到, 只要返回了, response.setHeader("Access-Control-Allow-Origin","*"); 形式的消息头, 就能让所有的域名的脚本访问本资源,
如果是返回了 response.setHeader("Access-Control-Allow-Origin","www.hehe.jaja.com"); 则只能由该域名下的脚本访问我的资源。。
另外我们还可以通过 在 web.xml 中配置 cors filter 的方法来设置
Access-Control-Allow-Origin跨域 问题
代码如下 :
<filter> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> <init-param> <param-name>cors.allowed.headers</param-name> <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization,auth</param-value> </init-param> </filter>
但是在一些新项目中并不能配置 web.xml, 所以还是使用 返回相应消息头的方式来的好