# CORS 跨域说明
CORS,Cross-Origin Resource Sharing,跨域资源共享,是一种允许当前域的资源(被其他域的脚本请求访问的机制。
为了安全,浏览器中启用了一种称为同源策略的安全机制,禁止从一个域名页面中请求另一个域名下的资源。
当两个请求的访问协议、域名与端口号三者都相同时,才称它们是同源的。只要有一个不同,就称为跨源请求。
举例
源地址 | 跨源 | 请求结果 |
---|---|---|
http://sports.com/ | https://news.com | 拒绝 |
http://sports.com/ | http://sports.com/ | 通过 |
http://sports:8080.com/ | http://sports:9000.com/ | 拒绝 |
# 解决方案
# 全局配置
spring:
cloud:
gateway:
globalcors:
cors-configurations:
# 所有请求
'[/**]':
# 允许的域名
allowedOrigins: "https://docs.spring.io","*"
# 允许的方法
allowedMethods:
- GET
# 局部配置
spring:
cloud:
gateway:
routes:
- id: cors_route
uri: https://example.org
predicates:
- Path=/service/**
metadata:
cors:
allowedOrigins: '*'
allowedMethods:
- GET
- POST
allowedHeaders: '*'
maxAge: 30