如CORS preflight request fails due to a standard header中所述,如果您向设置了Origin
和Access-Control-Request-Method
头的OPTIONS
端点发送请求,则它们会被Spring框架拦截,并且您的方法不会被执行。可接受的解决方案是使用@CrossOrigin
注解来阻止Spring返回403
。但是,我使用Swagger Codegen生成API代码,所以我只想禁用它并手动实现我的OPTIONS
响应。
那么你能在Spring中禁用CORS拦截吗?
9条答案
按热度按时间k4ymrczo1#
对于较新版本的 Spring Boot :
Kotlin之道
g6ll5ycj2#
从他们的文档中:
如果您使用的是Spring Web MVC
如果您使用的是Sping Boot :
Yuriy Yunikov的回答也是正确的。但我不喜欢“自定义”过滤器。
如果你有Spring Web Security,这会给你带来麻烦。检查this SO答案。
k2arahey3#
尝试添加以下筛选器(您可以根据自己的需要和支持的方法对其进行自定义):
bksxznpy4#
我在我的Sping Boot 应用程序中使用Spring Security,并允许从特定域(或所有域)进行访问。
我的 * 网络安全配置 *:
有时需要在测试前清除浏览器历史记录。
详细信息可在此处查看:http://appsdeveloperblog.com/crossorigin-restful-web-service/
仅适用于那些使用Angular的用户。从Angular我向后端运行请求:
**旧版本。**在我的Sping Boot 应用程序中,没有其他方法比这更有效:
lmyy7pcs5#
如果您至少拥有Java 8,请尝试以下方法:
xnifntxz6#
以前的答案几乎都是关于ENABLING CORS的,这对我禁用工作很有效。
alen0pnh7#
以上这些对我都不起作用,下面是我在Spring-Boot 2.6.7和Java 18中的做法。
(我知道下次我必须再次设置 Spring 后端时,我将不得不自己查找这一点):
jum4pzuy8#
SpringMVC
Spring Boot
Spring安全性(使用Spring MVC或Sping Boot )
如果使用Spring Security,请另外设置以下配置:
9rnv2umw9#
我使用 Spring Boot ,这就解决了我的问题。我正在使用React的前端。