问题:

在一些浏览器中(IE),由于缓存机制的存在,ajax 只会发送的第一次请求,剩余多次请求不会在发送给浏览器而是直接加载缓存中的数据。


解决方式:

浏览器的缓存是根据 url 地址来记录的,所以我们只需要修改 url 地址,在地址的后面添加一个时间戳,即可避免缓存问题。

1
xhr.open("GET",'http://127.0.0.1:8000/ie?t='+Date.now());
1
2
3
4
5
6
7
8
9
10
11
12
const xhr = new XMLHttpRequest();
//-----------------------------------------------------------------------------------
xhr.open("GET",'http://127.0.0.1:8000/ie?t='+Date.now());
//-----------------------------------------------------------------------------------
xhr.send();
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status >= 200 && xhr.status< 300){
result.innerHTML = xhr.response;
}
}
}

对它们的封装: —–传送门—–