Estou tendo um problema sério com os resultados de cache do Internet Explorer de uma solicitação JQuery Ajax.
Tenho um cabeçalho na minha página da web que é atualizado toda vez que um usuário navega para uma nova página. Depois que a página é carregada, faço isso
$.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");
Apenas injeta informações do cabeçalho na página. Você pode conferir isso acessando www.wikipediamaze.com e depois fazendo login e iniciando um novo quebra-cabeça.
Em todos os navegadores que testei (Google Chrome, Firefox, Safari, Internet Explorer), ele funciona muito bem, exceto no IE. Tudo é injetado muito bem no IE pela primeira vez, mas depois disso ele nunca faz a ligação /game/getpuzzleinfo
. É como se tivesse armazenado em cache os resultados ou algo assim.
Se eu mudar a chamada para o $.post("/game/getpuzzleinfo", ...
IE, ela atende muito bem. Mas o Firefox deixa de funcionar.
Alguém pode esclarecer isso sobre o motivo pelo qual o IE está armazenando em cache minhas $.get
chamadas ajax?
ATUALIZAR
De acordo com a sugestão abaixo, alterei minha solicitação de ajax para isso, que corrigiu meu problema:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});