在没有WWW-Authenticate的情况下返回AJAX响应的HTTP 401状态

时间:2014-08-12 16:52:51

标签: ajax http authentication http-response-codes www-authenticate

如果您希望传达用户未登录,即使登录机制是基于表单的,也不是为AJAX调用的响应返回 HTTP 401 状态是否可以基于HTTP(基本,摘要等)?

这里的答案表明应该使用401: https://stackoverflow.com/a/6937030/2891365

此帖显示了使用401进行AJAX响应的人的实际示例:http://www.bennadel.com/blog/2228-some-thoughts-on-handling-401-unauthorized-errors-with-jquery.htm

但是,RFC 2616 for HTTP/1.1明确指出需要特殊标头,暗示它只能用于HTTP身份验证。

  

10.4.2 401未经授权

     

请求需要用户身份验证。响应必须包含 WWW-Authenticate 标头字段(第14.47节),其中包含适用于所请求资源的质询。

我想我可能会发送像WWW-Authenticate: WebForm这样的虚假标题,但仍然符合W3C规范,但感觉它违反了WWW-Authenticate标题的精神。

最后,我似乎找不到明确说明是否允许HTTP 401进行AJAX响应的权威来源。我错过了这方面的权威来源吗?

1 个答案:

答案 0 :(得分:1)

我会说它不好,因为401是告诉客户端提供http身份验证凭据。正确的响应将是403 Forbidden,只是告诉客户不允许它以任何理由访问该资源。