gpt4 book ai didi

javascript - 在 html header 中设置 no-cache 不起作用

转载 作者:行者123 更新时间:2023-11-30 17:37:37 27 4
gpt4 key购买 nike

我想阻止用户在注销后按转到上一页(浏览器中的后退按钮)。

我设法在 apache 中将其添加到配置中:

<FilesMatch "\.(html|htm|js|css|pl)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</FilesMatch>

但是当我直接在源代码中执行它时它不起作用我正在使用:

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

最佳答案

正如 Quentin exlplain 所说,此元标记会被浏览器忽略。

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

所以这就是我在所有浏览器中禁用缓存的方法。

来自 perl

 Use CGI;

sub set_new_query() {
$query = CGI->new();
print $query->header(
-expires => 'Sat, 26 Jul 1997 05:00:00 GMT',
-Pragma => 'no-cache',
-Cache_Control => join(', ', qw(
private
no-cache
no-store
must-revalidate
max-age=0
pre-check=0
post-check=0
))
);
}

Apache 中的替代方法是添加到 httpd.conf:

LoadModule headers_module modules/mod_headers.so

<FilesMatch "\.(html|htm|js|css|pl)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</FilesMatch>

对于其他语言,这里有一个很好的描述: Making sure a web page is not cached, across all browsers

关于javascript - 在 html header 中设置 no-cache 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21722480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com