Spring Boot+Spring Cloud Gateway多CORS头错误排查求助
问题原因与解决方案
问题根源
你遇到的错误是因为Spring Cloud Gateway和后端Spring Boot服务同时配置了CORS策略,导致响应头里重复添加了Access-Control-Allow-Origin: *,浏览器检测到多个相同的头值,触发了CORS拦截。
解决步骤
- 只保留Spring Cloud Gateway的CORS配置,删除后端Spring Boot服务里所有CORS相关配置(包括
@CrossOrigin注解、全局CORS配置类等)。 - 检查网关配置,确保没有其他路由单独定义CORS规则,避免重复添加响应头。当前你的全局CORS配置格式是正确的,但要避免多重复配置。
- (可选)如果需要更严格的源控制,把
allowedOrigins: "*"替换为具体请求源,比如:
这样既解决重复头问题,也能提升安全性。allowedOrigins: "http://127.0.0.1:5500"
验证方法
修改配置后重启网关和后端服务,重新发起请求,查看响应头里Access-Control-Allow-Origin是否只有一个值(要么是*,要么是你指定的具体源)。
内容的提问来源于stack exchange,提问作者SKS
相关产品推荐
相关产品推荐

