Internet explorer 在IE中使用location.replace()时避免缓存

Internet explorer 在IE中使用location.replace()时避免缓存,internet-explorer,caching,web,cache-control,Internet Explorer,Caching,Web,Cache Control,在我正在处理的应用程序的登录过程中,有一个提交用户名和密码的POST表单。处理登录后,将通过调用location.replace清除URL,以从浏览器历史记录中删除帖子页面 这意味着,如果用户在登录后点击F5,它将重新加载默认页面,而不是尝试重新提交登录凭据。但是我在IE中遇到了一个问题,当开发工具未打开时,替换无法正常工作 通过打开开发人员工具并启动网络跟踪,然后再次关闭它,我可以看到问题所在。location.replace的URL出现在跟踪中,状态显示为“304未修改”,过期时间为未来1天

在我正在处理的应用程序的登录过程中,有一个提交用户名和密码的POST表单。处理登录后,将通过调用location.replace清除URL,以从浏览器历史记录中删除帖子页面

这意味着,如果用户在登录后点击F5,它将重新加载默认页面,而不是尝试重新提交登录凭据。但是我在IE中遇到了一个问题,当开发工具未打开时,替换无法正常工作

通过打开开发人员工具并启动网络跟踪,然后再次关闭它,我可以看到问题所在。location.replace的URL出现在跟踪中,状态显示为“304未修改”,过期时间为未来1天。我可以从Apache日志中看到,请求没有发送到服务器,而且页面总是以适当的标题输出,以禁用缓存

如果开发人员工具当时处于打开状态,它可以在其他浏览器和IE中正常工作!但我不知道如何停止IE中的缓存,除了通过丑化URL


请注意,我在试图删除URL末尾的丑陋的?c=1405502309参数时造成了这个问题,我知道我可以通过将其放回原处来修复它!但我真正想要的是不必这样做,只需让IE遵守无缓存头。

Hmmm一天只有6个视图

我想我最终找到了解决方案,即不向缓存头添加存储,如下所述:

我仍然不明白为什么需要这样做:location.replace绝对不是浏览器历史机制的一部分