Bir JQuery Ajax isteği Internet Explorer önbellek sonuçları ile ciddi bir sorun yaşıyorum.
Web sayfamda, kullanıcı yeni bir sayfaya her gittiğinde güncellenen bir başlığım var. Sayfa yüklendikten sonra bunu yaparım
$.get("/game/getpuzzleinfo", null, function(data, status) {
var content = "<h1>Wikipedia Maze</h1>";
content += "<p class='endtopic'>Looking for <span><a title='Opens the topic you are looking for in a separate tab or window' href='" + data.EndTopicUrl + "' target='_blank'>" + data.EndTopic + "<a/></span></p>";
content += "<p class='step'>Step <span>" + data.StepCount + "</span></p>";
content += "<p class='level'>Level <span>" + data.PuzzleLevel.toString() + "</span></p>";
content += "<p class='startover'><a href='/game/start/" + data.PuzzleId.toString() + "'>Start Over</a></p>";
$("#wikiheader").append(content);
}, "json");
Yalnızca sayfaya başlık bilgisi ekler. Www.wikipediamaze.com adresine gidip giriş yapıp yeni bir bulmacayı başlatarak kontrol edebilirsiniz .
Test ettiğim her tarayıcıda (Google Chrome, Firefox, Safari, Internet Explorer) IE dışında harika çalışıyor . Eveything ilk kez IE'de iyi enjekte edilir , ancak bundan sonra asla çağrı yapmaz /game/getpuzzleinfo
. Sanki sonuçları önbelleğe almış gibi.
$.post("/game/getpuzzleinfo", ...
IE çağrısını değiştirirseniz iyi alır. Ama sonra Firefox çalışmayı bıraktı.
Birisi IE'nin neden $.get
ajax çağrılarımı önbelleğe aldığına dair biraz ışık tutabilir mi?
GÜNCELLEME
Aşağıdaki öneriye göre, sorunumu düzelten ajax isteğimi değiştirdim:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});