配置cors跨域问题解决
spring boot 打jar包时 偶发性报跨域问题,当前项目前后端分离 之前配置了cors过滤器做跨域处理,但还是偶尔跨域,对该拦截器配置做了处理后即可:
新增corsConfig,详细代码如下:
@Configuration
public Class CorsConfig{
@Bean
Public FilterRegistrationBean corsFilter(){
CorsConfiguration config=new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
config.setMaxAge(3600L);
config.addExposedHeader("Content-Type");
config.addExposedHeader("X-Requested-With");
config.addExposedHeader("accept");
config.addExposedHeader("Origin");
config.addExposedHeader("Access-Control-Request-Method");
config.addExposedHeader("Access-Control-Request-Headers");
UrlBasedCorsConfigurationSource configSource= new UrlBasedCorsConfigurationSource();
configSource.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean =new FilterRegistrationBean<>(new CorsFilter(configSource));
//设置过滤器的优先级
bean.setOrder(0);
return bean;
}
}
原因可能是因为 打jar包时shiro拦截器拦截http请求的预检请求,导致跨域发生,所以我们设置了cors的级别高于shiro,避免了拦截预检请求发生。