如何防止 form.target 导致历史记录中的所有 HTTP GET 对服务器进行另一次往返

本文关键字:服务器 一次 GET HTTP target form 何防止 历史 记录 | 更新日期: 2023-09-27 18:31:36

好吧,我正在使用form.target在新窗口中打开内容。 但是,当我执行此操作然后点击浏览器上的后退按钮时,我发现由 GET 产生的任何条目都在对服务器进行另一次往返。 这是一个问题,因为会话变量可能在此期间已更改,因此新的 GET 不再与旧变量匹配。

我正在为这个 Web 应用程序使用 C# 和 javascript,如果它有帮助的话。

此行为发生在 IE8 上,但不发生在 Firefox 10 上。 有什么方法可以在IE中防止它吗?

如何防止 form.target 导致历史记录中的所有 HTTP GET 对服务器进行另一次往返

我通过在 URL 上添加一个半随机 ID 作为查询字符串来解决这个问题。

我还将其添加到我的 OnInit 事件中。 出于某种原因,显式设置缓存设置会有所帮助。

Response.AppendHeader("Cache-Control", "private, max-age=600");

结合起来,这赋予了页面唯一性并强制执行浏览器缓存。 这可以防止浏览器在浏览历史记录中遇到 GET 操作时始终检索页面的最新版本。

相关文章: