当用户尝试访问他们无权访问的资源时,我的服务器返回403禁止错误。除了标题之外,服务器还会写一条描述错误的小消息。
在Firefox中,错误消息会很好地显示,并且用户知道发生了什么。
在Internet Explorer中,邮件被隐藏并替换为403 Forbidden标准错误页面。
是否有任何特定规则允许我在所有浏览器中显示错误消息,同时仍将状态设置为403 Forbidden?
以下是此状态的RFC信息:
服务器理解请求,但是 拒绝履行它。 授权无济于事 请求不应重复。如果 请求方法不是HEAD和 服务器希望公开为什么 请求尚未完成,它 应该描述原因 拒绝实体。如果是服务器 不希望提供这些信息 可供客户使用,状态 可以使用代码404(未找到) 代替。
好像我应该设置一条消息,但IE不会显示它。
答案 0 :(得分:6)
尝试将403页面放大(即更多字节)。一些浏览器假设一个简短的错误页面是Web服务器的默认页面,并决定显示自己的,可能是更有帮助的文本。
答案 1 :(得分:0)
错误处理的实现取决于浏览器。在HTTP中,如果您只是要返回403错误,那么您必须依赖用户代理(浏览器的技术名称,错误消息的收件人可能不是浏览器)来处理它认为合适的方式。
如果您不喜欢浏览器处理403错误的方式,并希望确保所有浏览器的用户体验一致,那么请将用户重定向到您自己的“权限被拒绝”页面。您可以构建一个页面,向他们解释为什么权限被拒绝以及他们可以对此做些什么。它对任何浏览器都是一致的。