DataService 启用了 CORS,但我仍然看到 401 未授权错误(选项)

DataService is CORS enabled, but still i see 401 unauthorized error (OPTIONS)

从原始问题改写

我有一个调用我的 OData 数据服务的 GET 请求。

现在,当发出请求时,我在网络调试器中看到以下错误:

HTTP OPTIONS 401 Unauthorized text/html

确实,我确实看到 Access-Control headers 都如预期的那样:

Access-Control-Allow-Headers: content-type, accept
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Origin: http://mydomain:port

现在尽管看起来一切正确,但我仍然看到上述错误(pre-flight OPTIONS 请求期间出现 401 未经授权的错误)。

我做错了什么?

401 未授权错误与 CORS 完全没有(直接)关系。

浏览器正在发出 OPTIONS 请求,服务器表示不允许(完全不允许;不仅仅是来自 JavaScript)。

CORS headers 也在响应中发送这一事实无关紧要:CORS 的要求是预检响应为 200 OK。


可能发生的情况是您有一个需要身份验证的 API。也许是用户名和密码。也许是一块饼干。也许是别的什么。是你的API,你应该知道。

浏览器不会在预检请求中发送这些凭据。

您需要配置服务器,以便 OPTIONS 请求不需要凭据。