我有一個小問題,我不知道如何處理。IE瀏覽器不刷新後Ajax獲得/職位
我寫了一些jQuery後/得到哪些在FF,Opera和Chrome罰款。但是當從資源管理器(任何版本)運行時,請求中更新的內容不會被加載到瀏覽器中。我使用了開發人員工具並調試了腳本,並且請求以正確的參數發送。這些操作甚至可以執行,但在清除瀏覽器歷史記錄或打開/關閉瀏覽器之前,這些操作是不可見的。
這可能是一個愚蠢的問題,但我如何讓IE識別這些請求的變化?
我有一個小問題,我不知道如何處理。IE瀏覽器不刷新後Ajax獲得/職位
我寫了一些jQuery後/得到哪些在FF,Opera和Chrome罰款。但是當從資源管理器(任何版本)運行時,請求中更新的內容不會被加載到瀏覽器中。我使用了開發人員工具並調試了腳本,並且請求以正確的參數發送。這些操作甚至可以執行,但在清除瀏覽器歷史記錄或打開/關閉瀏覽器之前,這些操作是不可見的。
這可能是一個愚蠢的問題,但我如何讓IE識別這些請求的變化?
嘗試cache: false
參數設置爲你的AJAX請求的瀏覽器可能會緩存GET請求:
$.ajax({
url: '/foo',
type: 'GET',
cache: false,
success: function(result) {
// TODO: update the DOM with the results
}
});
嘗試下面的添加到響應頭和IE不會再緩存:
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.addHeader("Cache-Control", "no-store");
response.addHeader("Cache-Control", "must-revalidate");
response.addHeader("Cache-Control", "Post-Check=0");
response.addHeader("Cache-Control", "Pre-Check=0");
response.addHeader("Expires", "Mon, 1 Jan 2006 05:00:00 GMT");//in the past
注意:代碼是java代碼
只是一個問題;代碼去哪裏? – tohereknowswhen 2011-04-14 12:12:29
在服務器端,在你自己關閉響應之前;在完成請求處理(獲取數據或執行您想要執行的操作)之後,將結果寫入響應並將這些參數添加到響應的頭部。 – Saeed 2011-04-14 14:28:14
在IE中使用ajax調用它的create cache並存儲這個舊值。當y ou收到它的put catch值的響應,所以你可以使緩存爲false。
$.ajaxSetup({ cache: false });
OR
$.ajax({ url: your need url,
cache: false,
type: 'get',
data:'your parameters',
success: function(result) {
//put your code here...
}
});
你既可以在你的code.but第一個答案用的是最好的。
發生什麼事情是,您可能正在向您的AJAX調用的Web服務發出GET請求。
Internet Explorer以其智慧會自動緩存來自GET請求的響應,而其他瀏覽器會讓您決定是否要緩存結果。一旦IE瀏覽器成功提出GET請求,它將不再進行該調用,直到緩存在該對象上到期爲止。解決方案是:
使用POST: 一個選項是簡單地在您的應用程序中使用POST請求,而不是GET請求。在客戶端和服務器端,從GET切換到POST通常是一個小改動。
響應頭:
您還可以通過與響應一起發送附加頭防止緩存。通過指定「Cache-Control」
標頭的值爲「no-cache,no-store」
並將其返回給Web服務響應,您可以指示瀏覽器不緩存結果。
的jQuery:
最後,如果你使用jQuery,你可以指定你不想從你的AJAX請求緩存響應無論是跨使用$ .ajaxSetup(板)方法或者以每個請求爲基礎緩存:false。
$.ajax({
type: 'GET',
cache: false,
這是作品寫cache: false
時,工作在Internet Explorer中的版本10和11也是在Firefox和克羅默。謝謝你堆棧溢出。
我和IE有同樣的問題。在一個地方,IE從HTML中剝離出了div標籤,這是我在Ajax調用成功時取代的。在另一種情況下,我無法進行調用,因爲雖然我將值賦給了一個變量,但我並沒有這樣寫 - var variablename = value。 – KutePHP 2011-04-13 09:29:52
我認爲它現在可行!看起來像高速緩存:假是它的工作。根據另一篇文章,它所做的是插入一個時間戳,以便IE能夠識別更新。不錯的一個 – tohereknowswhen 2011-04-13 09:32:07
我遇到過類似的問題。如果您決定完全關閉緩存,IE確實會忽略您。我還沒有找到有效關閉緩存客戶端的方法。 – Flater 2012-07-12 11:55:30