springboot前后端分离解决跨域问题(使用配置类)
在前后端分离的项目中,跨域是我们必须要解决的问题。
通常,我都是在controller上加上注解@CrossOrigin来解决。可是当微服务的服务模块较多时,就需要一个一个加(其实也不麻烦),就怕有时会漏,所以这里我使用了在网关服务模块加上一个配置类,代码如下
@Configuration
public class TestCorsConfiguration {
@Bean
public CorsWebFilter corsWebFilter(){
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
//1、配置跨域
// 跨域的请求头
corsConfiguration.addAllowedHeader("*");
// 跨域的请求方法
corsConfiguration.addAllowedMethod("*");
// 所有的地址都可以访问
corsConfiguration.addAllowedOrigin("*");
// 可以携带cookie相关的信息
corsConfiguration.setAllowCredentials(true);
source.registerCorsConfiguration("/**",corsConfiguration);
return new CorsWebFilter(source);
}
}
这里容易掉进一个小坑
UrlBasedCorsConfigurationSource这个类的全限定类名是如下
org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
而不是这样的org.springframework.web.cors.UrlBasedCorsConfigurationSource
本人因为漏了reactive找了半天错误~