最近做一個項目,用戶登錄之前,通過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();
}