Tengo un problema grave con los resultados de almacenamiento en caché de Internet Explorer de una solicitud JQuery Ajax.
Tengo un encabezado en mi página web que se actualiza cada vez que un usuario navega a una nueva página. Una vez cargada la página hago esto
$.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");
Simplemente inyecta información de encabezado en la página. Puede verificarlo yendo a www.wikipediamaze.com y luego iniciando sesión y comenzando un nuevo rompecabezas.
En todos los navegadores que he probado (Google Chrome, Firefox, Safari, Internet Explorer) funciona muy bien, excepto en IE. Todo se inyecta bien en IE la primera vez, pero después de eso ni siquiera hace la llamada /game/getpuzzleinfo
. Es como si hubiera almacenado en caché los resultados o algo así.
Si cambio la llamada a $.post("/game/getpuzzleinfo", ...
IE, la contesta muy bien. Pero luego Firefox deja de funcionar.
¿Alguien puede arrojar algo de luz sobre por qué IE está almacenando en caché mis $.get
llamadas ajax?
ACTUALIZAR
Según la sugerencia a continuación, he cambiado mi solicitud de ajax a esto, lo que solucionó mi problema:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});