我正在尝试使用PHP清除浏览器缓存
这是我的代码
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-Type: application/xml; charset=utf-8");
这段代码没有用,任何人都可以有想法。
提前致谢
答案 0 :(得分:5)
您不能从服务器端清除缓存,只是指示浏览器不再进行缓存。
您使用的标头会起作用 - 它们会告诉浏览器不要缓存您刚刚发送的内容。但是,如果浏览器已经有页面的缓存版本,它将不会发送请求,也不会获取您正在设置的标头,因此它不会知道放弃缓存版本。
按CTRL + F5强制浏览器刷新内容。执行此操作后,您应该获得预期的行为。
答案 1 :(得分:2)
您无法使用PHP清除本地浏览器缓存。您只能清除用户在运行PHP脚本的网站上拥有的会话/ cookie。
答案 2 :(得分:1)
我们在制作中使用此功能,以防止用户通过按回浏览器(它位于AppController::beforeFilter()
)注销后能够查看经过身份验证的页面:
// disable local browser cache for authenticated pages (so user can't press back after logging out)
if ($this->Auth->user()) {
$this->header("Cache-Control: no-cache, no-store, must-revalidate"); // 'no-store' is the key
$this->header("Expires: Mon, 1 Jan 2001 00:00:00 GMT"); // date in the past
}
答案 3 :(得分:1)
请将此代码添加到您的php页面
<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>