从原始问题改写
我有一个GET请求正在调用我的OData DataService。
现在,在发出请求时,我在网络调试器中看到以下错误:
HTTP OPTIONS 401 Unauthorized text/html
事实上,我确实看到Access-Control标头都按预期存在:
Access-Control-Allow-Headers: content-type, accept
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Origin: http://mydomain:port
现在,尽管看起来一切正确,但我仍然看到上述错误(飞行前选项请求期间出现401未经授权的错误)。
我在这里做什么错了?
答案 0 :(得分:1)
“ 401未经授权”错误与CORS无关(直接)。
浏览器正在发出OPTIONS请求,服务器在说(完全不允许;完全不只是来自JavaScript)不允许这样做。
在响应中也发送CORS标头的事实无关紧要:CORS的要求是飞行前响应为200 OK。
可能发生的事情是您有一个需要身份验证的API。也许是用户名和密码。也许是饼干。也许别的东西。您应该知道这是您的API。
浏览器不会在预检请求中发送这些凭据。
您需要配置服务器,以便OPTIONS请求不需要凭据。