jQuery ajax() メソッドを使用してデータを別の ExportData ページに渡し (GET)、そのページの処理後に返されたデータ (「成功/失敗」) を取得しています。ExportData ページが「成功/失敗」を返すまでに約 10 秒かかります。
私が使用しているコードは、他のブラウザー (FF/IE/Chrome) ではうまく機能しますが、Safari では機能しません。Safari のコード インスペクターで表示されるステータス コードは -1001 で、データを受信していません。他の ajax() リクエストがあり (このページがデータを返す限り必要ではありません)、それらは機能します (ステータスは 200 です)。
データの送信と受信の間隔が長いと、Safari でエラーが発生するのではないかと推測しました。ただし、-1001 エラーがすぐに表示されることもわかりました。これは、ExportData.php が実行されなかったことを意味している可能性があります。
誰かがこの問題について考えを持っていますか? あなたの助けは大歓迎です!
コードは次のとおりです。
ExportData: function (date,view) {
ajaxcall.data = {};
ajaxcall.url = 'ExportData.php?Date='+date+'&View='+view;
ajaxcall.callbackfunction = UserEvents.ExportSuccess;
ajaxcall.Call();
},
「ajaxcall」は別のファイルにあります。
var ajaxcall = {
SitePath: '',
data: '',
url: '',
callbackfunction: '',
fileElementClass: '',
AjaxRequest: false,
callback: true,
Call: function () {
if (ajaxcall.AjaxRequest == true) {
alert(ajaxcall.AjaxRequest);
return;
}
else {
try {
ajaxcall.AjaxRequest == true;
$.ajax({
type: "GET",
url: ajaxcall.url,
data: ajaxcall.data,
dataType: "json",
async: false,
success: function (data) {
if (ajaxcall.callback == true) {
ajaxcall.callbackfunction(data);
}
},
error: function (request, status, error) {},
complete: function () {
ajaxcall.AjaxRequest = false;
}
});
}
catch (e) {
ajaxcall.AjaxRequest == false;
}
}
},
};
ありがとう、ショーン・リュー