【发布时间】:2021-01-01 03:51:33
【问题描述】:
您好,我无法在我的项目中禁用 CORS。我使用自定义过滤器和 Spring Security Config 进行 CORS 配置。我已经看到了这个出色的答案:Can you completely disable CORS support in Spring?
但是当我尝试了以下实现时,我仍然收到 CORS 错误:
CORS 配置:
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
class CorsFilter @Autowired
constructor() : CorsFilter(configSrc()) {
companion object {
private fun configSrc(): UrlBasedCorsConfigurationSource {
val config = CorsConfiguration()
config.allowCredentials = true
config.addAllowedOrigin("http://127.0.0.1:3000")
config.addAllowedHeader("*")
config.addAllowedMethod("*")
val src = UrlBasedCorsConfigurationSource()
src.registerCorsConfiguration("/**", config)
return src
}
}
}
我也尝试将允许的来源设置为如下所示,但没有结果:
config.addAllowedOrigin("http://127.0.0.1:3000")
这些是来自正在进行的 OPTIONS 请求的响应标头:
您能否指出任何其他想法或为什么会发生这种情况?我认为这将是一个很容易解决的问题,但它最终花费了我很多时间。
谢谢
【问题讨论】:
-
您确定
Access-Control-Allow-Origin标头出现在您从错误消息中用绿色掩盖的URL 获得的响应中吗? (是这个掩码 URL 的响应标头的图像吗?) -
我该如何检查?我是否需要访问前端,即请求的来源?
-
是的。我假设第一张图片(带有响应标题)也来自您的浏览器。在浏览器开发人员工具的网络选项卡中,您应该找到这个特定的调用(在错误消息中被绿色掩盖的那个)并检查它是否包含此标头。错误消息似乎表明它没有。该端点是需要返回此响应标头的端点。
-
Access-Control-Allow-Origin 标头作为响应标头存在,值为“127.0.0.1:3000”。响应标头的图像就是这个被屏蔽的 URL
-
您使用的是谷歌浏览器吗?如果是这样,那么这很可能是原因:stackoverflow.com/questions/10883211/…
标签: java spring spring-boot kotlin cors