最近写代码,前端请求老是出现:No 'Access-Control-Allow-Origin' header is present on the requested resource 这个错误的问题。网上也有很多种解决办法,我这里主要是通过在web.xml里设置CORS来解决嘴跨域问题。
首先需要在web.xml里配置filter:
<filter> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> <init-param> <param-name>cors.allowed.origins</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.allowed.methods</param-name> <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value> </init-param> <init-param> <param-name>cors.allowed.headers</param-name> <param-value>Host,Origin,X-Requested-With,Content-Type,Accept,AppKey,Nonce,CurTime,CheckSum,Accept-Encoding,Accept-Language,Connection,Content-Length,User-Agent,Referer</param-value> </init-param> <init-param> <param-name>cors.exposed.headers</param-name> <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value> </init-param> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
注意,工程里需要依赖cors包,我用的是maven,配置如一下:
<dependency> <groupId>com.thetransactioncompany</groupId> <artifactId>cors-filter</artifactId> <version>1.7</version> </dependency>
web.xml里需要注意:
- cors.allowed.methods:是要设置请求的方法,如果你只设置了post,请求是get也会报错;
- cors.allowed.headers:请求的header里允许的内容。如果请求里的header不在这个白名单里,也会报同样的错误。
- <url-pattern>/*</url-pattern>:设置允许请求的url,这里设置的/*就是所有的请求都允许,其实这样是会有安全问题。
cors的原理大家可以看一下另外两篇文章,写得比较详细。链接发出来:
http://www.cnblogs.com/huangjacky/p/4001073.html
http://www.cnblogs.com/Darren_code/p/cors.html
相关推荐
当一个网页尝试从不同的源(协议、域名或端口)请求资源时,如果目标服务器没有允许这个源的权限,浏览器会阻止该请求,从而出现"No 'Access-Control-Allow-Origin' header is present on the requested resource"的...
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 这就是跨域问题。解决方案有不少,比较好的是服务器端配置CORS,但要求服务器端...
add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET,POST'; 使用以下配置,生效。 if ($request_method = '...
解决浏览器跨域请求出现No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access.问题
标题 "解决方案 ‘Access-Control-Allow-Origin’ header in the response must not be the wildcard ‘*’" 提到的是一个在Web开发中常见的跨域问题。`Access-Control-Allow-Origin` 是一个用于控制资源跨域访问的...
总的来说,解决"No 'Access-Control-Allow-Origin'"跨域问题的关键在于理解浏览器的同源策略,并在后端服务器中正确配置CORS策略。在实际开发中,应当兼顾安全性和便利性,根据项目需求来设定合适的跨域策略。
- 浏览器控制台通常会显示类似的错误消息:“XMLHttpRequest cannot load [URL] No 'Access-Control-Allow-Origin' header is present on the requested resource”。 #### 三、解决跨域问题的方法 **1. 修改后端...
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch ...
/// 2、“has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.”。 /// 3、“has been blocked by CORS policy: Response to preflight request...
$response->header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With, Token'); $response->header('Access-Control-Allow-Origin', '*'); $response->...
跨域错误通常表现为"No ‘Access-Control-Allow-Origin’ header is present on the requested resource.",这意味着服务器没有正确配置允许跨域访问。以下是三种常见的Vue跨域解决方案: 1. **后台设置CORS**: ...
依赖于CCL,...报XMLHttpRequest cannot load 和No 'Access-Control-Allow-Origin' header is present on the requested resource.的错误 暂时无解,我在服务器上已经enable了CORS
res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization, Origin, Accept, X-Requested-With'); res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH...
XMLHttpRequest cannot load http://192.168.2.12:8001/oss/api/version/check. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:8000’ is therefor
【Redirect at origin ‘http://sub1.xx.com’ has been blocked from loading by Cross-Origin Resource Sharing policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource....
构建该模块是为了解决出现此错误的问题: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque ...
这篇文章主要给大家介绍了关于Django跨域请求问题解决的相关资料,文中介绍的实现...No ‘Access-Control-Allow-Origin’ header is present on the requested resource. 这是由于CORS导致的。 什么是CORS? CORS
问题描述 前端时间在公司的时候,要使用angular开发一个网站,因为angular很适合前后端分离,...No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is
XMLHttpRequest cannot load http://192.168.0.118:8081/get_mobile_number/?id=1. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not
Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:9000’ is therefore not ...