【问题标题】:How to prevent a browser for caching a link?如何防止浏览器缓存链接?
【发布时间】:2018-01-24 10:30:45
【问题描述】:

我有一个用户私人区域和一个“注销”链接:

<a href="~/User/Logoff">Log off</a>

问题是浏览器缓存了这个链接,并没有在用户每次点击时向服务器发出请求。

我搜索并找到了一个应该关闭整个页面缓存的解决方案:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>

但我不想完全关闭缓存,我只想确保当用户单击“注销”时始终会发出请求。

是否可以告诉浏览器此特定链接不可缓存?

【问题讨论】:

  • 让它成为一个按钮并在后面的代码中注销,然后重定向到您的注销页面(啊刚刚看到答案 - 就像下面的答案所述)

标签: html asp.net-mvc browser-cache


【解决方案1】:

一般来说,改变状态的 HTTP 操作不应该使用 GET 动词(如链接)。您应该考虑使用&lt;form&gt; POST 到将用户注销的端点。

<form method="POST" action="~/User/Logoff">
  <button type="submit">Log off</button>
</form>

这永远不会被缓存。

如果您必须使用 GET 动词,并且您正在使用 WebAPI,我相信您可以使用一些属性来装饰您的路由方法,这些属性将禁用缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2011-04-28
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    相关资源
    最近更新 更多