JQuery AjaxリクエストによるInternet Explorerのキャッシュ結果に深刻な問題があります。
Webページにヘッダーがあり、ユーザーが新しいページに移動するたびに更新されます。ページが読み込まれたら、これを行います
$.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) { ... }
});