java后端配置跨域不生效、无效
首先我已经配置了跨域
@Configuration
public class CrosConfig implements WebMvcConfigurer
{
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*");
}
}
上述代码就是解决跨域问题一个简单的处理方式,正常情况下是生效的。
但我配置之后,前端访问仍报跨域的错。
debug的时候发现前端请求没有走到跨域这里,就被spring-sercurity先拦截了。
更换跨域配置,设置跨域的执行优先即即可。
@Configuration
public class CrosConfig{
@Bean
public FilterRegistrationBean corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean cros = new FilterRegistrationBean(new CorsFilter(source));
//设置优先级最高
cros.setOrder(Ordered.HIGHEST_PRECEDENCE);
return cros;
}
}
问题归纳总结
跨域可能被优先级更高的拦截器阻挡,从而发生配置了跨域但不生效的情况。
————————————————
版权声明:本文为优快云博主「小杰s」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/u014292402/article/details/125079208