Java Spring REST API CORS不适用于通过jQuery与Chrome进行DELETE请求

我正在创建一个使用jQuery编写的Web前端,它使用Spring框架将REST请求发送到用Java编写的REST Web服务。 我正面临着CORS请求的奇怪错误。 特别是,如果我使用Safari,一切正常; 相反,使用Chrome,所有DELETE请求都失败(GET和POST请求在Chrome中也能正常工作)。

我得到的错误是:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 403. 

当Chrome发出第一个OPTIONS请求时会发生这种情况。

我关于CORS的代码是:

 @Configuration @EnableWebMvc public class CorsConfigurator extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "POST", "DELETE", "PUT", "OPTIONS"); } } @SpringBootApplication public class App { public static void main( String[] args ) { SpringApplication.run(App.class, args); } @Bean public WebMvcConfigurer corsConfigurer() { return new CorsConfigurator(); } } 

我还尝试将@CrossOrigin注释添加到我的@RestController但没有任何改变。 有人知道要解决这个问题吗?

谢谢你,马可

我刚刚将@CrossOrigin添加到控制器中的方法并解决了我的问题

我在spring boot应用程序中遇到此错误,我通过添加或启用corsfunction解决了这个问题,如下所示

cors:allowed-origin:“ http:// localhost:8082 ”allowed-methods:“ ”allowed-headers:“ ”exposed-headers:“Authorization,Link,X-Total-Count”allow-credentials:true max-age :1800