Tôi đang gặp vấn đề nghiêm trọng với kết quả bộ nhớ đệm Internet Explorer từ yêu cầu JQuery Ajax.
Tôi có tiêu đề trên trang web của mình được cập nhật mỗi khi người dùng điều hướng đến một trang mới. Khi trang được tải, tôi làm điều này
$.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");
Nó chỉ tiêm thông tin tiêu đề vào trang. Bạn có thể kiểm tra nó bằng cách truy cập www.wikipediamaze.com và sau đó đăng nhập và bắt đầu một câu đố mới.
Trong mọi trình duyệt tôi đã thử nghiệm (Google Chrome, Firefox, Safari, Internet Explorer), nó hoạt động rất tốt ngoại trừ trong IE. Eveything được tiêm tốt trong IE lần đầu tiên nhưng sau đó nó thậm chí không bao giờ thực hiện cuộc gọi đến /game/getpuzzleinfo
. Nó giống như nó đã lưu trữ kết quả hoặc một cái gì đó.
Nếu tôi thay đổi cuộc gọi sang $.post("/game/getpuzzleinfo", ...
IE, hãy chọn nó. Nhưng sau đó Firefox bỏ việc.
Ai đó có thể vui lòng làm sáng tỏ điều này về lý do tại sao IE lưu trữ $.get
các cuộc gọi ajax của tôi không?
CẬP NHẬT
Theo đề xuất bên dưới, tôi đã thay đổi yêu cầu ajax của mình thành điều này, điều này đã khắc phục vấn đề của tôi:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});