13

如果您希望传达用户未登录的信息,是否可以返回HTTP 401状态以响应 AJAX 调用,即使登录机制是基于表单而不是基于 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

但是,针对 HTTP/1.1 的 RFC 2616明确指出需要一个特殊的标头,这意味着它只能用于 HTTP 身份验证。

10.4.2 401 未经授权

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

我想我可能可以发送一个虚假的标题,WWW-Authenticate: WebForm并且仍然符合 W3C 规范,但感觉它违反了WWW-Authenticate标题的精神。

最后,我似乎找不到明确说明 HTTP 401 是否允许用于 AJAX 响应的权威来源。有没有我错过的权威来源?

4

1 回答 1

2

我会说这不行,因为 401 是为了告诉客户端提供 http 身份验证凭据。正确的响应是 403 Forbidden,只是告诉客户端无论出于何种原因都不允许访问该资源。

于 2014-09-17T01:39:38.023 回答