3

当用户尝试访问他们无权访问的资源时,我的服务器返回 403 禁止错误。除了标头,服务器还写了一条描述错误的小消息。

在 Firefox 中,错误消息可以很好地显示,并且用户知道发生了什么。

在 Internet Explorer 中,该消息被隐藏并替换为 403 Forbidden 标准错误页面。

是否有任何特定规则允许我在所有浏览器中显示错误消息,同时仍将状态设置为 403 Forbidden?

以下是有关此状态的 RFC 信息:

服务器理解请求,但拒绝执行。授权将无济于事,并且不应重复请求。如果请求方法不是 HEAD 并且服务器希望公开请求未完成的原因,它应该在实体中描述拒绝的原因。如果服务器不希望向客户端提供此信息,则可以使用状态代码 404(未找到)来代替。

似乎我应该设置一条消息,但 IE 只是不会显示它。

4

2 回答 2

6

尝试使您的 403 页面更大(即更多字节)。一些浏览器假定一个简短的错误页面是来自网络服务器的默认页面,并决定显示他们自己的、可能更有用的文本。

更多信息

于 2009-11-04T21:46:52.590 回答
0

错误处理的实现取决于浏览器。在 HTTP 中,如果您只是要返回 403 错误,那么您必须依靠用户代理(浏览器的技术名称,错误消息的接收者可能不是浏览器)来处理它认为合适的方式。

如果您不喜欢浏览器处理 403 错误的方式并希望确保所有浏览器的用户体验一致,则将用户重定向到您自己的“权限被拒绝”页面。您可以建立一个页面,向他们解释权限被拒绝的原因以及他们可以做些什么。并且对于任何浏览器都是一致的。

于 2009-11-04T16:19:53.970 回答