Sto riscontrando un serio problema con i risultati della memorizzazione nella cache di Internet Explorer da una richiesta Ajax di JQuery.
Ho un'intestazione sulla mia pagina Web che viene aggiornata ogni volta che un utente accede a una nuova pagina. Una volta caricata la pagina, lo faccio
$.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");
Inietta semplicemente le informazioni dell'intestazione nella pagina. Puoi verificarlo andando su www.wikipediamaze.com e quindi effettuando il login e avviando un nuovo puzzle.
In ogni browser che ho testato (Google Chrome, Firefox, Safari, Internet Explorer) funziona benissimo tranne in IE. Tutto viene iniettato bene in IE la prima volta, ma dopo non effettua nemmeno la chiamata /game/getpuzzleinfo
. È come se avesse memorizzato nella cache i risultati o qualcosa del genere.
Se cambio la chiamata a $.post("/game/getpuzzleinfo", ...
Internet Explorer, la rispondo bene. Ma poi Firefox smette di funzionare.
Qualcuno può far luce su questo sul motivo per cui IE sta memorizzando nella cache le mie $.get
chiamate Ajax?
AGGIORNARE
Per il suggerimento seguente, ho modificato la mia richiesta Ajax in questo, che ha risolto il mio problema:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});