問題描述
spring boot2.4版本之后展箱,延用2.3的跨域方式餐茵,訪問swagger出錯(cuò).
2.3版本跨域配置如下:
/**
* 跨域問題解決
*/
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*")
.allowedHeaders("*")
.maxAge(3600)
.allowCredentials(true);
}
}
解決方法:
Spring官網(wǎng)有類似問題:https://github.com/spring-projects/spring-framework/issues/26111
Spring官網(wǎng)解決回答:
大致意思為:提供了allowedOriginPatterns方法供使用坯辩。原本的allowCredentials為true時(shí),allowedOrigins不能使用 * 號(hào)匹配
即:
/**
* 跨域問題解決
*/
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowedMethods("*")
.allowedHeaders("*")
.maxAge(3600)
.allowCredentials(true);
}
}