У меня серьезная проблема с результатами кэширования Internet Explorer из запроса JQuery Ajax.
У меня есть заголовок на моей веб-странице, который обновляется каждый раз, когда пользователь переходит на новую страницу. Как только страница загружена, я делаю это
$.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");
Он просто вводит информацию заголовка на страницу. Вы можете проверить это, зайдя на www.wikipediamaze.com, а затем войдя в систему и запустив новую головоломку.
В каждом браузере, который я тестировал (Google Chrome, Firefox, Safari, Internet Explorer), он отлично работает, кроме IE. Eveything впрыскивается очень хорошо в IE в первый раз, но после этого он даже не звонит /game/getpuzzleinfo
. Это как если бы он кешировал результаты или что-то в этом роде.
Если я изменяю вызов на $.post("/game/getpuzzleinfo", ...
IE, то поднимает трубку. Но тогда Firefox перестает работать.
Может кто-нибудь, пожалуйста, пролить свет на то, почему IE кеширует мои $.get
ajax-вызовы?
ОБНОВИТЬ
Согласно приведенному ниже предложению, я изменил свой запрос ajax на это, что решило мою проблему:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});