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;
            }
        }
    },
};

Спасибо, Шон Лю

Ответы на вопрос(2)

Ваш ответ на вопрос