次のAJAX呼び出しはIEで失敗しています。
$.ajax({
url:"{{SITE_URL}}/content/Twitter.json",
dataType:"json",
error:function(xhr, status, errorThrown) {
alert(errorThrown+'\n'+status+'\n'+xhr.statusText);
},
success:function(json) {
...Snip...
}
});
エラー関数は
Undefined
parsererror
OK
サーバーへの要求は行われないため、JSONに問題があるとは思わない。
修正済み、#1351389を参照
修正、コンテンツタイプをapplication/json; charset=utf8
から単なるapplication/json
に変更しました。
嫌いIE :)
IE super-cachingを回避するには、これを試してください:
var d = new Date();
$.ajax({
url:"{{SITE_URL}}/content/Twitter.json?_="+d.getTime(),
...Snip...
そのように、各リクエストはIEを取得するための新しいURLです。
キャッシュの問題については、単純にcache: false
パラメータ?
$.ajax({
url: "yoururl",
cache: false,
....
これはコピー/貼り付けですか?常に私を得る1つのことは、オブジェクトコンストラクターに最後の '、'を残すことです。つまり、ほとんどのブラウザJSは次を受け入れます。
o = { a:1, b:2, c:3, };
しかし、IE最後のアイテムの後のコンマがこれをチョークします。
o = { a:1, b:2, c:3 };
そしてそれは動作します。
Internet Explorer(IE7)の新しいバージョンでは、$。ajaxを呼び出す前に次の行を記述する必要があります。そうしないと、関数が呼び出されません。
$.ajaxSetup({ cache: false }); //this line before $.ajax!!!
$.ajax({
//codes
//codes
//codes
});
IEキャッシュAJAXリクエストは本当に積極的です(とにかくFirefoxよりも)。これがあなたのサイトに合わない場合は、応答にCache-Controlヘッダーを適切に設定する必要があります。
静的に生成されたJSONとIEの1つの大きな問題は、先頭の「コンマ」です。たとえば、IEでエラーがスローされます。
{
"one":"hello",
"two":"hi",
}
最後のコンマに注意してください。
{{SITE_URL}}チャンク提供とは何ですか。ブラウザのソースコードを表示してコードを見てみてください。 {{SITE _URL}}チャンクの末尾にスラッシュがあり、リクエストURLが作成される場合:
http://modomain.com//content/Twitter.json
クリープIE out?
IE:で解決されたJSON未定義エラー
http://funkatron.com/site/comments/safely-parsing-json-in-javascript/
dataType: "json"を使用して、解析を回避する