https://blog.csdn.net/u010238381/article/details/84304968
https://docs.microsoft.com/zh-cn/troubleshoot/browsers/how-to-prevent-caching
ajax 请求缓存复现
准备一个请求页面
<!doctype html>
<html>
<head>
<title>测试 IE 缓存</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<meta charset="UTF-8" />
<script>
$(function () {
$.ajax({
url: 'http://localhost/test.php',
success: function (result) {
alert(result);
}
});
});
</script>
</head>
<body>
</body>
</html>
准备一个接口,接口用 PHP 写的,返回一个随机数。
<?php
echo rand(1, 200);
打开 IE 浏览器(测试环境 IE 11),这时候会发现无论刷新多少次,页面都是固定的数字。
打开 F12 开发者工具,发现请求显示来自缓存,甚至时间都是 0 秒。
修改一下 PHP 接口,添加 Response Header,Cache-Control: no-cache
Cache-Control 参考文章:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Cache-Control
https://zhangzw.com/posts/20190422.html
Cache-Control 可选值,no-cache 并不是不缓存,而是会校验缓存;no-store 才是禁止缓存。
<?php
header('Cache-Control: no-store');
echo rand(1, 200);