代码之家  ›  专栏  ›  技术社区  ›  AlvinfromDiaspar

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

  •  0
  • AlvinfromDiaspar  · 技术社区  · 6 年前

    从原来的问题改写

    我有一个get请求,它正在调用我的odata dataservice。

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

    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飞行前选项请求期间未经授权的错误)。

    我在这里做错什么了?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Quentin    6 年前

    401未经授权的错误与cors完全没有关系。

    浏览器正在发出选项请求,服务器说不允许这样做(根本不允许;不仅仅是从javascript)。

    在应答中发送CORS报头的事实是不相关的:CORS的一个要求是飞行前的应答是200ok。


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

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

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