如果您希望传达用户未登录,即使登录机制是基于表单的,也不是为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响应的权威来源。我错过了这方面的权威来源吗?
答案 0 :(得分:1)
我会说它不好,因为401是告诉客户端提供http身份验证凭据。正确的响应将是403 Forbidden,只是告诉客户不允许它以任何理由访问该资源。