2012-11-15 157 views
4

我有一个页面,通过AJAX将内容发布到服务器。如果用户未登录或用户无权发布,服务器端脚本将返回状态代码401。问题是,浏览器用登录对话框提示用户,我们没有权力抑制这一点。用500改变401可以吗?如果不是,我可以使用什么合适的通用或自定义代码?替代HTTP状态码401?

回答

4

A在网站管理员StackExchange上的similar question was asked。 401用于HTTP身份验证,407用于代理身份验证,两者都与您使用的基于表单的身份验证不同。当用户未登录时,您当然可以返回500 - Internal Server error,但是我提到的帖子建议使用403 - Forbidden。 HTTP状态码列表及其含义可在here找到。

+1

401:“服务器理解请求,但拒绝履行它,授权不会帮助,...”它表示授权不会帮助,这是什么意思? – dpp

+0

看起来像403意味着无论用户是谁,资源仍然被禁止,这是否正确? – dpp

+1

他声明'授权不会帮助',即“应该将'理解为指协议级授权机制”,即HTTP认证。换句话说,HTTP授权不会有帮助,但是其他类型的授权,例如基于表单的授权。尽管它声明请求不应该重复,但这并不意味着重新授权的新的和不同的请求无法完成。 –