Spring 多部分请求的 CORS:对预检请求的响应未通过访问控制检查

Spring CORS for multipart requests: Response to preflight request doesn't pass access control check

我研究了很多关于同一问题的其他问题,但没有解决方案。如果我错过了一些有用的选项并重复了已解决的问题,请原谅。

我有 React 前端和 Spring 引导后端,在同一台主机上进行测试。为了允许 CORS 请求,我已将此配置添加到我的服务器:

@Configuration
@EnableWebMvc
class WebConfig : WebMvcConfigurer {
    override fun addCorsMappings(registry: CorsRegistry) {
        registry.addMapping("/**").allowedOrigins("http://localhost:3000")
    }
}

一切正常,直到我尝试通过多部分请求发送文件。对于这些请求,我收到此错误:

Access to fetch at 'http://192.168.0.14:8080/goods/enrichFromCsv' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

我曾尝试模拟对我的 API 的预检 OPTIONS 请求,并收到了所有请求的 headers:

所有其他请求都正常工作。只有那些有附加文件的失败。关于如何修复它有什么想法吗?

P.S。我不想在我的整个浏览器中禁用 CORS,我认为应该有一个选项可以从 Spring 启动后端允许它。

感谢@PraveenE,我使用 Firebase Dev Tools 跟踪了预检请求并发现了问题。请求类型中有错字(POST_BASE 而不是 POST),因此 CORS 合法地拒绝了它。

所有其他请求都有效,因为它们是通过另一种方法发送的,该方法输入了正确的请求类型。

对于那些也将面临此问题的人 - 尝试跟踪预检请求并找出问题所在。此外,模拟来自 Postman 的预检请求有助于检查后端是否已正确设置所有内容。