JQuery Ajax 요청의 Internet Explorer 캐싱 결과에 심각한 문제가 있습니다.
웹 페이지에 사용자가 새 페이지를 탐색 할 때마다 업데이트되는 헤더가 있습니다. 페이지가로드되면이 작업을 수행합니다
$.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 으로 이동 한 다음 로그인하여 새 퍼즐을 시작하여 확인할 수 있습니다 .
테스트 한 모든 브라우저 (Chrome, Firefox, Safari, Internet Explorer) 에서 IE를 제외하고 는 훌륭하게 작동합니다 . Eveything은 처음으로 IE에 제대로 주입 되었지만 그 이후에는 결코 호출하지 않습니다 /game/getpuzzleinfo
. 결과 또는 무언가를 캐시 한 것과 같습니다.
$.post("/game/getpuzzleinfo", ...
IE로 전화를 바꾸면 전화가 잘 걸립니다. 그러나 Firefox는 작동을 멈 춥니 다.
IE가 왜 내 $.get
아약스 호출을 캐싱하는지에 대해 누군가가 이것에 대해 약간의 조명을 줄 수 있습니까 ?
최신 정보
아래 제안에 따라 내 아약스 요청을 이것으로 변경하여 문제를 해결했습니다.
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});