SpringCloud网关转发跨域问题

记一次网关跨域的问题

跨域是怎样产生的就不写了,主要记录问题发生的场景及解决
先交代下背景 服务的注册中心是eureka 网关是springCloud gateway

在一次开发中,要和前端的同事联调,我将接口给他,让他来调,每个接口我都用postman试过,参数没问题的话基本能通(项目紧先不考虑那么多),他通过前端的服务访问我时,跟我说跨域了。
我:哦,等我一下(我想起来服务都没加跨域,于是挨个加上)
我:再试下
他:好了

 	@Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = jHipsterProperties.getCors();
        if (config.getAllowedOrigins() != null && !config.getAllowedOrigins().isEmpty()) {
            log.debug("Registering CORS filter");
            source.registerCorsConfiguration("/**/**", config);
        }
        return new CorsFilter(source);
    }

我还是比较欢喜的,然后其中大部分接口需要通过网关A服务来转发到B服务的接口上,于是将转发地址告诉了他,他一访问
他:跨域
我:????咋回事
他给我发来F12的截图,确实是跨域。可我都加了啊,百般调试,不行,能用的方法都用了,不行!我又看他发来的截图感觉不对,说不上哪里不对
我:你打开f12 点到network下,再请求下我看看
他给我发来图片(图片没有保存,真是太可惜了)
我:点那个请求,我看看请求头

在这里插入图片描述

大概就是上面这个样子,但是!!!!同样的头信息,有两份!!!

我似乎明白了什么,通过我的A服务转发到B服务,每个服务都给添加了允许跨域的头信息,可不就是两份吗?于是把其中一个服务的跨域注释掉了

	@Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = jHipsterProperties.getCors();
        if (config.getAllowedOrigins() != null && !config.getAllowedOrigins().isEmpty()) {
            log.debug("Registering CORS filter");
            //source.registerCorsConfiguration("/**", config);
        }
        return new CorsFilter(source);
    }

(暂时先这样,后续可以拦截自己决定)

没出意外,成功了!!!这个坑我记下了!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值