由于Spring Security是基于过滤器的安全框架,目前没有办法知道在请求处理链中的Spring MVC级别发生的CORS配置和处理,因此例如预检CORS请求被阻止。
你可以配置Spring Security以通过指定 .requestMatchers(CorsUtils :: isPreFlightRequest).permitAll()来允许 WebSecurityConfigurerAdapter#configure(HttpSecurity) code>但这种方法有两个缺点:
Spring Security本身处理的请求CORS响应标头,并且将被浏览器阻止,但不允许您获取错误状态代码
通过允许 OPTIONS 有CORS标头的请求