Spring boot2.4版本跨域问题

问题描述

spring boot2.4版本之后,延用2.3的跨域方式,访问swagger出错.


image.png

2.3版本跨域配置如下:

/**
 * 跨域问题解决
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("*")
                .allowedHeaders("*")
                .maxAge(3600)
                .allowCredentials(true);
    }
}

解决方法:

Spring官网有类似问题:https://github.com/spring-projects/spring-framework/issues/26111

Spring官网解决回答:


image.png

大致意思为:提供了allowedOriginPatterns方法供使用。原本的allowCredentials为true时,allowedOrigins不能使用 * 号匹配

即:

/**
 * 跨域问题解决
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedMethods("*")
                .allowedHeaders("*")
                .maxAge(3600)
                .allowCredentials(true);
    }
}

你可能感兴趣的:(Spring boot2.4版本跨域问题)