防止ie浏览器缓存ajax请求的解决方法

2015-01-27 14:11:44 · 作者: · 浏览: 20

最近做一个项目,用户登录之前,通过ajax请求服务器弹窗提示用户登录,用户登录以后ajax请求仍然会弹窗提示登录,经检查发现在用户第一次请求后,ajax请求页面被缓存,导致服务器接受不到最新的请求而出现错误提示。

最简单有效的解决方法,在ajax的请求地址后面加一个动态的参数,可以是随机数,可以是时间戳,这样ie浏览器会认为你每次请求的是不同的页面,而不会去请求缓存页面。

代码如下:

function test(giftid,con){
var xmlhttp:

var rand = Math.round(Math.random()*10+1); //生成1-10之间的随机数

if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
var jsonobj=eva l('('+xmlhttp.responseText+')');
}
}
xmlhttp.open("GET",'test.php?inajax=yes&rand=’rand,true);
xmlhttp.send();
}