Mam poważny problem z wynikami buforowania Internet Explorera z żądania JQuery Ajax.
Mam nagłówek na mojej stronie internetowej, który jest aktualizowany za każdym razem, gdy użytkownik przechodzi do nowej strony. Robię to po załadowaniu strony
$.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");
Po prostu wstrzykuje informacje nagłówka na stronę. Możesz to sprawdzić, wchodząc na www.wikipediamaze.com, a następnie logując się i rozpoczynając nową łamigłówkę.
W każdej testowanej przeze mnie przeglądarce (Google Chrome, Firefox, Safari, Internet Explorer) działa świetnie poza IE. Wszystko zostaje dobrze wstrzyknięte w IE za pierwszym razem, ale potem już nigdy nie wykonuje wywołania /game/getpuzzleinfo
. To tak, jakby zapisał wyniki w pamięci podręcznej lub coś takiego.
Jeśli zmienię połączenie na $.post("/game/getpuzzleinfo", ...
IE, odbierze je dobrze. Ale potem Firefox przestaje działać.
Czy ktoś może rzucić trochę światła na to, dlaczego IE buforuje moje $.get
wywołania Ajax?
AKTUALIZACJA
Zgodnie z poniższą sugestią zmieniłem moje żądanie Ajax na to, co rozwiązało mój problem:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});