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

DataService启用了CORS,但我仍然看到401个未经授权的错误(选项),cors,preflight,dataservice,Cors,Preflight,Dataservice,从原来的问题改过来 我有一个GET请求正在调用我的OData数据服务 现在,当发出请求时,我在网络调试器中看到以下错误: HTTP OPTIONS 401 Unauthorized text/html 事实上,我确实看到访问控制头都如预期的那样存在: Access-Control-Allow-Headers: content-type, accept Access-Control-Allow-Methods: POST, GET, OPTIONS Access-Control-Allow-Or

从原来的问题改过来

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

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

HTTP OPTIONS 401 Unauthorized text/html
事实上,我确实看到访问控制头都如预期的那样存在:

Access-Control-Allow-Headers: content-type, accept
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Origin: http://mydomain:port
现在,尽管一切似乎都是正确的,但我仍然看到上面提到的错误,即飞行前选项请求中的401未经授权的错误


我做错了什么?

401未经授权的错误与CORS没有任何直接关系

浏览器发出选项请求,服务器说根本不允许它;不仅仅是来自JavaScript

CORS报头也在响应中发送这一事实与此无关:CORS的一个要求是飞行前响应为200 OK

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

浏览器不会在飞行前请求中发送这些凭据


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

是否需要设置需要预飞行的标头?否;CORS只会在您通过某些请求头时发送预飞行。