【问题标题】:Avoid caching when using location.replace() in IE在 IE 中使用 location.replace() 时避免缓存
【发布时间】: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


    【解决方案1】:

    嗯,一天只有 6 次观看?

    我想我最终找到了将no-store 添加到缓存标头的解决方案,如下所述:Why both no-cache and no-store should be used in HTTP response?

    我还是不太明白为什么需要这个:location.replace() 绝对不是浏览器历史机制的一部分……

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 2016-12-19
      • 2015-02-12
      • 1970-01-01
      • 2014-03-25
      • 2018-03-28
      • 1970-01-01
      • 2019-05-06
      • 2019-09-05
      相关资源
      最近更新 更多