gateway No 'Access-Control-Allow-Origin' header is present on the requested resource
时间: 2023-11-17 21:03:11 浏览: 150
当我们使用网关进行请求转发时,有时会出现“CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource”错误,这是因为浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是于当前页同域名的路径,这能有效的防止跨站脚本攻击。而网关转发请求时,请求的源头已经不是当前页的域名,因此会出现跨域问题。解决这个问题的方法是在网关中进行跨域配置,可以在gateway网关中的yml文件中添加如下配置:
```yaml
spring:
cloud:
gateway:
globalcors:
add-to-simple-url-handler-mapping: true
corsConfigurations:
'[/**]':
allowedOrigins:
- "http://localhost:8090" # 允许哪些网站的跨域请求
allowedMethods:
- "GET"
- "POST"
- "DELETE"
- "PUT"
- "OPTIONS" # 允许的跨域ajax的请求方式
allowedHeaders: "*" # 允许在请求中携带的头信息
allowCredentials: true # 是否允许携带cookie
maxAge: 360000 # 这次跨域检测的有效期
```
其中,allowedOrigins表示允许哪些网站的跨域请求,allowedMethods表示允许的跨域ajax的请求方式,allowedHeaders表示允许在请求中携带的头信息,allowCredentials表示是否允许携带cookie,maxAge表示这次跨域检测的有效期。
阅读全文