Saya mengalami masalah serius dengan hasil cache Internet Explorer dari permintaan JQuery Ajax.
Saya memiliki header di halaman web saya yang diperbarui setiap kali pengguna menavigasi ke halaman baru. Setelah halaman dimuat saya melakukan ini
$.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");
Itu hanya menyuntikkan info header ke halaman. Anda dapat memeriksanya dengan membuka www.wikipediamaze.com lalu masuk dan memulai teka-teki baru.
Di setiap browser yang saya uji (Google Chrome, Firefox, Safari, Internet Explorer), ini berfungsi dengan baik kecuali di IE. Semuanya diinjeksi dengan baik di IE pertama kali, tetapi setelah itu bahkan tidak pernah membuat panggilan ke /game/getpuzzleinfo
. Ini seperti telah menyimpan hasil atau sesuatu.
Jika saya mengubah panggilan ke $.post("/game/getpuzzleinfo", ...
IE mengambilnya dengan baik. Tapi kemudian Firefox berhenti berfungsi.
Bisakah seseorang menjelaskan hal ini tentang mengapa IE melakukan cache $.get
panggilan ajax saya ?
MEMPERBARUI
Sesuai saran di bawah ini, saya telah mengubah permintaan ajax saya menjadi ini, yang memperbaiki masalah saya:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});