【发布时间】:2014-07-18 15:42:45
【问题描述】:
在我正在处理的应用程序的登录过程中,有一个 POST 表单提交用户名和密码。处理完登录后,将通过调用location.replace() 来清理 URL,以从浏览器历史记录中删除帖子页面。
这意味着如果用户在登录后按 F5,它只会重新加载默认页面,而不是尝试重新提交登录凭据。但是我在IE中遇到了问题,当开发者工具未打开时,替换无法正常工作。
通过打开开发人员工具并启动网络跟踪,然后再次关闭它,我可以看到问题所在。 location.replace() 的 URL 出现在跟踪中,状态显示为“304 未修改”,过期时间为 1 天后。我可以从 Apache 日志中看到请求没有发送到服务器,并且页面始终输出适当的标头以禁用缓存。
它在其他浏览器中运行良好,如果开发人员工具当时打开(!)在 IE 中,但我不知道如何停止在 IE 中缓存,除了通过 uglifying URL。
关于信息,我在尝试摆脱 URL 末尾的丑陋 ?c=1405502309 参数时创建了这个问题,我知道我可以通过将其放回去来解决它!但我真正想要的是不必这样做,只需让 IE 遵守 no-cache 标头即可。
【问题讨论】:
标签: internet-explorer caching web cache-control