J'ai un problème sérieux avec les résultats de la mise en cache d'Internet Explorer à partir d'une requête JQuery Ajax.
J'ai un en-tête sur ma page Web qui est mis à jour chaque fois qu'un utilisateur accède à une nouvelle page. Une fois la page chargée, je le fais
$.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");
Il injecte simplement des informations d'en-tête dans la page. Vous pouvez le vérifier en allant sur www.wikipediamaze.com , puis en vous connectant et en commençant un nouveau puzzle.
Dans tous les navigateurs que j'ai testés (Google Chrome, Firefox, Safari, Internet Explorer), cela fonctionne très bien sauf dans IE. Tout est très bien injecté dans IE la première fois, mais après cela, il ne fait même jamais l'appel /game/getpuzzleinfo
. C'est comme s'il avait mis en cache les résultats ou quelque chose du genre.
Si je change l'appel à $.post("/game/getpuzzleinfo", ...
IE le prend très bien. Mais ensuite, Firefox cesse de fonctionner.
Quelqu'un peut-il s'il vous plaît faire la lumière sur cela pour savoir pourquoi IE met en cache mes $.get
appels ajax?
METTRE À JOUR
Selon la suggestion ci-dessous, j'ai changé ma demande ajax en ceci, ce qui a résolu mon problème:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});