问题现象:
前后端分离项目,出现跨域,并且有的接口不报跨域,有的接口报跨域,亦或者是登录后,请求接口还是未登录。
解决:
springboot用的2.1.8,
CrossOrigin在自定义拦截器之后执行。
所以我们添加一个filter ,因为filter先于拦截器执行。
先注释掉其他地方配置跨域的代码。
@Configuration public class CorsConfiguration { @Bean public CorsFilter corsFilter(){ CorsConfiguration config = new CorsConfiguration(); config.addAllowedOrigin("*"); config.setAllowCredentials(true); config.addAllowedMethod("*"); config.addAllowedHeader("*"); UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource(); configSource.registerCorsConfiguration("/**", config); return new CorsFilter(configSource); } }
据说springboot2.2.0以后cors拦截要比自定义拦截器先执行,没啥限制了,可以试试。