この問題は、Safari for Mac でのみ発生します。次のように、クリーンな json データ ファイルを読み込んでいます。
$.ajax({
url : url,
type : 'POST',
dataType : 'json',
contentType : 'application/json; charset=utf-8',
crossdomain: true,
context : contextObj.context,
success : function(data) {
// Irrelevant
callBackHandler.call(contextObj.context, event);
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr.status);
console.log(thrownError);
}
});
私のCORS対応サーバーには次のものがあります。
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, If-Modified-Since, If-None-Match, *"
Header set Access-Control-Max-Age "3600"
リクエストヘッダーをキャプチャしましたが、私が見る唯一の違いは次のとおりです。明確にするために、失敗したリクエストには次のものが含まれていますが、次の更新には次のものが含まれていません。したがって、Access-Control-Allow-Headers への項目の追加:
If-Modified-Since: Fri, 08 Mar 2013 15:57:07 GMT
If-None-Match: "6801d-c550-4d76be008fac0"
これはサーバー構成の問題ですか、jQuery の使用法ですか、それとも何か他の問題ですか? Safari が 1 回おきの更新で一貫してヘッダーを変更するのは奇妙です。