SpringCloud Gateway跨域配置

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001`

出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)。

在Spring Cloud Gateway中配置跨域是非常简单的,如下面application.yml所示:

 gateway:

      globalcors:

        corsConfigurations:

          '[/**]':

            allowedOrigins: "*"

            allowedMethods:

              - GET

              - POST

              - PUT

另外一种写法就需要创建CorsWebFilter过滤器,代码如下:

/**

 * 配置跨域

 * @return

 */

@Bean

public CorsWebFilter corsFilter() {

    CorsConfiguration config = new CorsConfiguration();

    // cookie跨域

    config.setAllowCredentials(Boolean.TRUE);

    config.addAllowedMethod("*");

    config.addAllowedOrigin("*");

    config.addAllowedHeader("*");

    // 配置前端js允许访问的自定义响应头

    config.addExposedHeader("Authorization");

    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());

    source.registerCorsConfiguration("/**", config);

    return new CorsWebFilter(source);

}

最后更新于