Ich habe ein ernstes Problem mit dem Zwischenspeichern von Internet Explorer-Ergebnissen aus einer JQuery Ajax-Anforderung.
Ich habe eine Kopfzeile auf meiner Webseite, die jedes Mal aktualisiert wird, wenn ein Benutzer zu einer neuen Seite navigiert. Sobald die Seite geladen ist, mache ich das
$.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");
Es werden nur Header-Informationen in die Seite eingefügt. Sie können es überprüfen, indem Sie auf www.wikipediamaze.com gehen und sich dann anmelden und ein neues Puzzle starten.
In jedem von mir getesteten Browser (Google Chrome, Firefox, Safari, Internet Explorer) funktioniert es hervorragend, außer im Internet Explorer . Alles wird beim ersten Mal in IE gut injiziert, aber danach wird es nicht einmal mehr angerufen /game/getpuzzleinfo
. Es ist, als hätte es die Ergebnisse zwischengespeichert oder so.
Wenn ich den Anruf in $.post("/game/getpuzzleinfo", ...
IE ändere , wird er gut angenommen. Aber dann hört Firefox auf zu arbeiten.
Kann jemand bitte etwas Licht ins Dunkel bringen, warum der IE meine $.get
Ajax-Anrufe zwischenspeichert?
AKTUALISIEREN
Gemäß dem folgenden Vorschlag habe ich meine Ajax-Anfrage in diese geändert, wodurch mein Problem behoben wurde:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});