對於Ajax在IE上讀快取的問題

2021-06-20 22:05:44 字數 952 閱讀 7116

最近在開發時遇到了一些關於ajax的問題,弄了好久終於解決了。

我在開發時,發現呼叫的ajax的那個js在其他瀏覽器上執行正常,但在ie上執行時就出現了乙個很大的問題,現在以我的開發的那個為例。例如:

在選取時 第一次選過的省份再一次選取的時候不會出現相對應的市級,也就是說省級的值市級的值不會改變(甚至是空的)。

省與市級不對應

(具體操作:現選江蘇省,市級顯示正常、在選湖南省顯示也正常。再選江蘇省出現如下狀況)

對於這種情況,在第一次執行時不會出現這種情況。而且在其他瀏覽器上也不會出現這種情況。只有ie才有這個情況。

原因:出現這種狀況的原因是因為,ie瀏覽器在執行這段ajax的程式時,由於先前選的省份所對應的市級的資料存在快取資料,直接返回,沒有執行**,所以沒有更新市級資料。才出現了上述的狀況。

在開啟那個瀏覽器的控制台會發現上述狀況會出現

瀏覽器返回的結果是304,而正常的應該是200。

解決方法:

既然是由於先前有這樣的資料的快取,那麼當傳的值不同時也就不存在快取的問題了。所以在傳值的時候加上乙個隨機變數(如時間變數)例如我的原來傳值的語句是這麼寫的,

content = encodeuri(***x+ "_***xx?xx="+xx);

修改後的語句是:

content = encodeuri(***x+ "_***xx?xx="+xx+" &time"=new date());

這樣傳過去的值就每次都不一樣了。也就不會存在快取的問題了。

我的這個問題就是這麼解決的,希望對大家有點幫助。

第一次寫博文,可能有許多的錯誤,希望各位大神批評和指正。

Ajax的IE快取問題

ajax的ie快取問題,會造成用open時用get方法不能重複提交。解決的辦法有以下幾種 1.客戶端在url後新增隨機數.new date gettime 或者math.random 或者送請求前加上 或者用post方法提交 2.伺服器端禁用快取.response.setheader pragma ...

關於ajax請求在IE6,9下的快取問題

最近的專案中,用到了很多ajax請求,大多用的都是jquery中的函式,如 getjson 為的是返回乙個json格式的字串便於後續操作。這樣寫,看上去沒有什麼問題,在ie7 8,opera firefox下測試都沒有什麼問題。但是,當在ie6和ie9下測試的時候,總是請求不到後台的新資料,然後懷疑...

ajax方法在IE瀏覽器下快取問題

最近在做專案的時候,遇到乙個問題,使用jquery的ajax方法進行非同步提交時,在ie瀏覽器下會存在快取問題,即當第一次請求傳送到伺服器後,如果後續的請求引數跟第一次相同,則瀏覽器會直接返回快取的結果而不是去伺服器獲取 經測試,在火狐與谷歌瀏覽器中不存在這樣的問題 通過上網查詢有關資料,現將解決方...