美文网首页
Netflix Zuul设置允许访问跨域

Netflix Zuul设置允许访问跨域

作者: 指间砂的宿命 | 来源:发表于2018-11-11 11:27 被阅读9次

    zuul作为统一网关代理所有后台接口,对于代码发起的http请求自然无需在意跨域的问题,但是对于提供给前端访问的接口,由于浏览器的安全策略对于跨域的资源访问会被拦截。
    具体的关于CORS(Cross-Origin Resource Sharing)问题解析可以参考链接: 详解js跨域问题

    1.Zuul配置允许CORS

    zuul:
       sensitiveHeaders: Cookie,Set-Cookie
       ignored-headers: Access-Control-Allow-Credentials, Access-Control-Allow-Origin, Access-Control-Allow-Methods
    

    将网关层的CORS放开

    2.Spring配置CorsFilter

    在完成第一步之后,对于Springboot项目接口,依旧会提示跨域,这是因为网关背后的每一个微服务有可能没有设置CORS,为了让每一个接口都支持CORS,因此需要在Zuul中配置CorsFilter, 代码如下:

      @Bean
      public CorsFilter corsFilter() {
            final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            final CorsConfiguration corsConfiguration = new CorsConfiguration();
            corsConfiguration.addAllowedHeader("*");
            corsConfiguration.addAllowedOrigin("*");
            corsConfiguration.addAllowedMethod("*");
            source.registerCorsConfiguration("/**", corsConfiguration);
            return new CorsFilter(source);
        }
    

    这样在页面测试时,就能保证所有的接口都是支持CORS的了

    相关文章

      网友评论

          本文标题:Netflix Zuul设置允许访问跨域

          本文链接:https://www.haomeiwen.com/subject/ytdxfqtx.html