【发布时间】:2013-12-30 23:46:58
【问题描述】:
我的主要目标是了解在使用 ajax 和 asp.net web api 后端的客户端(浏览器)之间的授权过程中究竟发生了什么。
所以最初,我通过浏览器中的 ajax 向我的一个控制器(允许“Access-Control-Allow-Origin”)发出一个简单的 GET 请求。我接受了我想要的回应,到目前为止一切正常。
然后,我在 web api 上的同一个控制器上设置一个授权属性,我再次发出一个简单的 GET 请求以研究结果。所以,在萤火虫的帮助下,我看到有一个“NetworkError:401 Unauthorized - localhost/api/values”。
此外,在结果对象上,我看到以下值:readyState:0,responseText:“”,status:0,statusText:“error”。这是正常的吗?我不应该看到例如状态:401吗? 我想我可以使用这个线程的公认解决方案:Unauthorized AJAX request succeeds 但我更喜欢更严格地检查潜在的 401 结果。
我的一个想法是,默认情况下,当您使用授权属性时,可能 asp.net Web API 在未经授权的响应中不包含“Access-Control-Allow-Origin”标头,因此我在全局范围内添加一个自定义操作过滤器,它将“Access-Control-Allow-Origin”添加到每个响应中,但它并没有解决我的问题,所以我猜不是这样。
【问题讨论】:
标签: ajax asp.net-web-api cors http-status-code-401