在項目中遇到一個問題,在火狐下,$.getJSON();請求數據一切正常,但是在IE下面,$.getJSON();只請求一次數據,第二次根本就不發送請求了,用fiddler抓取了才知道,第二次沒有發送請求,改成了post就正常了
$.getJSON()存在緩存問題,如果其調用的url之前曾經調用過的話,回調函數就會直接在緩存裡取得想要得值,而不是進入到後台
解決方法如下:
1、讓每次調用的URL都不一樣。
方法:在參數中加一個隨機數
. 代碼如下:
$.getJSON("/Member/GetExercise.html", { id: $("#Wareid").val(), isBool: loop, random:
Math.random() }, function (data) });
. 代碼如下:
$.getJSON("/Member/GetExercise.html?random=Math.random", { id: $("#Wareid").val(),
isBool: loop,}, function (data) });
用new Date()也可以算是隨機的URL
. 代碼如下:
?random=new Date().getTime()
2、將cache設為false
. 代碼如下:
$.ajax({
type:"GET",
url:'/Member/GetExercise.html',
cache:false,
dataType:"json",
success:function (data){
alert(data);
}
});