问题发现
正常情况下,跨域是这样的:
- 微服务配置跨域 + zuul 不配置 = 有跨域问题
- 微服务配置 + zuul 配置 = 有跨域问题
- 微服务不配置 + zuul 不配置 = 有跨域问题
- 微服务不配置 + zuul 配置 = ok
然而云环境中每个服务自己有跨域解决方案,而网关需要做最外层的跨域解决方案. 如果服务已有跨域配置网关也有,会出现 * 多次配置问题。
Access-Control-Allow-Origin:”*,*”
也就是 multiple Access-Control-Allow-Origin
!!!所以我们就要,微服务配置 + zuul 配置 = 解决跨域问题
zuul 的跨域忽略配置
使用 ZUUL 配置忽略头部信息 解决 cookie 跨域携带问题
zuul:
需要忽略的头部信息,不在传播到其他服务
sensitive-headers: Access-Control-Allow-Origin
ignored-headers: Access-Control-Allow-Origin,H-APP-Id,Token,APPToken
微服务应用的跨域配置
zuul 路由的跨域配置
@EnableZuulProxy
启动类里增加 bean