मैं एक 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 को छोड़कर महान काम करता है । आईई पहली बार में ठीक से इंजेक्ट हो जाता है, लेकिन इसके बाद यह कभी भी कॉल नहीं करता है /game/getpuzzleinfo
। यह ऐसा है जैसे इसने परिणामों या कुछ को कैश कर दिया है।
अगर मैं $.post("/game/getpuzzleinfo", ...
IE को कॉल बदलता हूं तो यह ठीक है। लेकिन तब फ़ायरफ़ॉक्स काम करना छोड़ देता है।
क्या कोई इस पर कुछ प्रकाश डाल सकता है कि क्यों IE मेरे $.get
अजाक्स कॉल को कैशिंग कर रहा है?
अपडेट करें
नीचे दिए गए सुझाव के अनुसार, मैंने अपना ajax अनुरोध इसमें बदल दिया है, जिससे मेरी समस्या ठीक हो गई:
$.ajax({
type: "GET",
url: "/game/getpuzzleinfo",
dataType: "json",
cache: false,
success: function(data) { ... }
});