在XMLHttpRequest请求时,浏览器会对比请求与缓存的地址,如果相同就会直接返回上一次的内容,不会重复请求。造成验证码不能更换的问题。
- 时间戳后缀
if(url.indexOf("?")>=0){//判断url中是否已经带有参数
url = url + "&t=" + (new Date()).valueOf();
}else{
url = url + "?t=" + (new Date()).valueOf();
}
或随机数
var url = BaseURL + "&r=" + Math.random();
- 在HTTP header上处理缓存
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
<meta http-equiv="expires" content="Thu, 01 Jan 1970 00:00:01 GMT" />
<meta http-equiv="expires" content="0" />
- 在XMLHttpRequest发送请求之前配置
XMLHttpRequest.setRequestHeader("If-Modified-Since","0");
XMLHttpRequest.send(null);
摘自 https://blog.csdn.net/yellow88488/article/details/53675615