jQuery .ajax () не работает в Safari, когда для получения возвращенных данных требуются секунды
Я использую метод jQuery ajax () для передачи (GET) данных на другую страницу ExportData и получения возвращенных данных («успешно / неудачно») после обработки этой страницы. Страница 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();
},
& Quot; ajaxcall & quot; находится в другом файле:
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;
}
}
},
};
Спасибо, Шон Лю