最近做一个项目,用户登录之前,通过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=eval('('+xmlhttp.responseText+')');
}
}
xmlhttp.open("GET",'test.php?inajax=yes&rand=’rand,true);
xmlhttp.send();
}