微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 禁用浏览器前进/后退按钮的网页缓存

我正在使用以下元标记来阻止浏览器缓存页面
<Meta http-equiv="Cache-Control" content="no-cache,no-store,must-revalidate,max-stale=0,post-check=0,pre-check=0" />
<Meta http-equiv="Pragma" content="no-cache" />
<Meta http-equiv="Expires" content="-1" />
<Meta http-equiv="vary" content="*" />

案件:

>浏览器已经打开,第1页.
>新的链接粘贴在浏览器地址栏中,现在打开page2页面.
>用户在第2页上执行操作,并重定向到第3页.

当第3页点击返回按钮时,用户将被重定向到第1页(在这种情况下,没有缓存,工作正常).当用户单击第1页上的转发按钮时,用户将被转发到安全页面2.这不应该发生.

以上所有内容都在IE9上进行测试.

这是怎么造成的,我该如何解决呢?

解决方法

您最初尝试使用HTML< Meta http-equiv>标签指定了 right header values,但是,由于您的网页已经通过HTTP提供,因此这一切都不起作用. < Meta http-equiv>标头指定“HTTP等效”标头,仅在不使用HTTP协议提供页面时使用.

例如,当从本地磁盘文件系统打开页面时,就像双击本地磁盘文件系统资源管理器中的.html文件一样.这将通过file:// URI而不是http:// URI打开.html文件.

您应该将这些标头设置为真正的HTTP响应.您可以通过在Chrome / FireFox> = 23 / IE> = 9中按F12调查当前HTTP响应的标头,并在“网络”选项卡中探索HTTP流量.特别是IE9 / 10的情况下,单击开始捕获按钮,重新加载页面,选择HTML页面,单击转到详细视图按钮,最后单击响应头标签.以下是您当前问题在IE10中如何显示的截图:

使用这个标头的正确方法是使用HttpServletResponse#setHeader()和诸如setDateHeader(),addHeader()等的朋友.如你所知,一种方法一个servlet过滤器.

也可以看看:

> Avoid back button on JSF web application

原文地址:https://www.jb51.cc/html/229258.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐