我在 Mac OSX 系统上遇到与后退按钮的功能相关的 Safari/Webkit 的“奇怪”行为问题,同时在浏览器上禁用了 javascript 。
我的场景是一个 Web 应用程序,它包含一个登录页面,在成功登录后,它将引导用户进入 page1。如果用户退出 page1,那么他/她将被重定向到 page2。对 page1 的会话外和未经身份验证的请求将通过 302 HTTP 响应重定向到初始登录页面。
还值得一提的是,对 page1 的请求的响应中存在以下 HTTP 标头,以防止浏览器缓存该页面:
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: Thu, 1 JAN 1970
Pragma: no-cache
从 page1 成功注销后,用户将被重定向到 page2。如果此时用户决定单击后退按钮,则浏览器将从其缓存加载 page1,而不是再次访问服务器以检索新副本。请注意,这一切都是在 Safari 中禁用 javascript 时发生的,启用它会产生从 Web 服务器重新加载 page1 的预期结果,从而使用户被重定向到初始登录页面
我试图在页面正文标记上设置一个卸载事件处理程序,以防止 Webkit 将页面加载到其页面缓存中,但这似乎并没有解决问题。
其他主流浏览器,FF、IE 和 Chrome 似乎在 JS 和非 JS 情况下都产生了预期的结果。
我是否在这里遗漏了什么,或者这听起来更像是 Safari/WebKit 的错误?
干杯;