【发布时间】:2025-12-16 09:05:02
【问题描述】:
在我的 asp.net 表单应用程序中。我试图阻止某些页面的缓存。 为此,我使用 Response.AppendHeader 设置了一系列缓存控制标头 例如
受保护的覆盖无效 OnLoad(Eventargs e) { ... Response.ClearHeaders(); Response.AppendHeader("缓存控制","无缓存"); …… base.OnLoad(e); }问题是当我查看我的站点并查看 Firefox 控制台中的“网络”选项卡以查看请求/响应标头时,我看到如下行为:
page1.aspx 的 POST 请求/响应触发重定向(到 page2.aspx) 此处的响应包含正确的标头。
page2.aspx 的 GET 请求/响应 相关响应的缓存控制标头只有一个值 'pre-check=0'
第二个请求似乎允许对页面进行缓存.. 注意:page1.aspx 和 page2.aspx 都有我上面描述的 OnLoad 逻辑。此外,如果我对 page2.aspx 采取一些措施,POST 响应将再次具有正确的标头。
我在这里缺少什么?我的期望是 OnLoad 中的逻辑应该意味着我总是得到响应中的标题,因此“总是”得到页面的当前版本?
我看到的是 Firefox 正在加载它的页面缓存版本。
我正在考虑在请求 url 中创建一个随机标识符来强制执行此操作,但这似乎有点笨拙。
-----更新----- 看来,这可能与“OnLoad”中有缓存代码有关。 我已将这些标题添加到页面的 Page_Load() 中,它工作正常吗? 任何想法。
【问题讨论】: