Firefox:CORS 缺少允许标头

ulr*_*ich 6 http cors

我的 Firefox 正在向我的私有后端发出 OPTIONS 预检请求,以使用凭据发出后续 GET 请求。

预检请求包含标头

Origin http://localhost:9670
Access-Control-Request-Headers authorization
Access-Control-Request-Method GET
Run Code Online (Sandbox Code Playgroud)

我的服务器响应

Access-Control-Allow-Credentials true
Access-Control-Allow-Origin http://localhost:9670
Vary: Origin
Run Code Online (Sandbox Code Playgroud)

根据我发现的文档应该没问题。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials

无论如何,我的火狐仍然显示

CORS 缺少允许标头

在开发者控制台“网络”选项卡的“已传输”部分中。

我的服务器响应缺少什么?

jub*_*0bs 14

此外

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:9670
Vary: Origin
Run Code Online (Sandbox Code Playgroud)

对预检请求的响应还必须包含

Access-Control-Allow-Headers: Authorization
Run Code Online (Sandbox Code Playgroud)

否则,访问控制检查将失败,并且您的浏览器将不会发送实际的(预检的)请求。请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers

您是否在后端从头开始实施 CORS?如果是这样,为什么不使用一个(好的)CORS 库,您可以配置它来为您处理所有这些事情?