经常遇到加了跨域但是前端访问还是会跨域,很有可能是没有走你写的跨域的流程,这时候加一个优先级就可以解决这个问题了
//一般都是用这个方法
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
// 允许跨域的头部信息
config.addAllowedHeader("*");
// 允许跨域的方法
config.addAllowedMethod("*");
// 可访问的外部域
config.addAllowedOrigin("*");
// 需要跨域用户凭证(cookie、HTTP认证及客户端SSL证明等)
//config.setAllowCredentials(true);
//config.addAllowedOriginPattern("*");
// 跨域路径配置
source.registerCorsConfiguration("/**", config);
//这两行是主要的,这里是设置跨域的优先级
FilterRegistrationBean cros = new FilterRegistrationBean(new CorsFilter(source));
//表示优先级最高
cros.setOrder(Ordered.HIGHEST_PRECEDENCE);
return new CorsFilter(source);
}