项目微服务改造,增加gateway后发现出现神奇问题: postman可以访问,vue浏览器访问不了。不通过gateway直接访问原项目就可以。
原项目跨域是通过webmvc 解决的 ,但是gateway 有个包和这个冲突。所以开始在网上找通过gateway解决的办法。
原来通过浏览器看到一个请求会有两个记录,都报错,如下图。

后来通过网上搜到下面代码加上后,其中xhr的请求返回200 但是没有响应内容。在xhr.js请求中能看到返回值,好神奇。
CORS Allow Origin Not Matching Origin
access-control-allow-origin
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;
import com.idealeye.gateway.filter.Cor

在项目微服务改造中,引入Spring Cloud Gateway后遇到浏览器访问异常,而Postman正常的问题。原来是CORS配置冲突导致。通过添加自定义CORS配置和过滤器,解决了Vue浏览器跨域问题。具体解决方案包括在配置类中设置CORS允许所有源,并添加过滤器确保响应头正确设置。
最低0.47元/天 解锁文章
7760

被折叠的 条评论
为什么被折叠?



