目录
问题
今天为了增加es支持,用了许久的springboot 2.1.8被我放弃,升级到了2.5.6版本,但随之而来还有 跨 域 的坑。
解决方案
先来说说2.1.8版本解 决 跨 域 的方法。直接贴代码了,配置类+跨 域 Bean
@Configuration
public class GlobalCorsConfig {
@Bean
public CorsFilter corsFilter() {
//1. 添加 CORS配置信息
CorsConfiguration config = new CorsConfiguration();
//放行哪些原始域
config.addAllowedOrigin("*");
//是否发送 Cookie
config.setAllowCredentials(true);
//放行哪些请求方式
config.addAllowedMethod("*");
//放行哪些原始请求头部信息
config.addAllowedHeader("*");
//暴露哪些头部信息
//config.addExposedHeader("*");
//2. 添加映射路径
UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
corsConfigurationSource.registerCorsConfiguration("/**",config);
//3. 返回新的CorsFilter
return new CorsFilter(corsConfigurationSource);
}
}
但是当你升级到了2.5.6之后的版本就会遇到新的跨域,这个雷已经不能解决问题了
注意问题
所以赶紧去官方文档查看一下,找到了解决方案,在启动类下增加如下Bean,代码块如下
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowCredentials(true).allowedOriginPatterns("*");
}
};
}
好了问题解决了
欢迎大家点击下方卡片,关注《coder练习生》