Как получить значение состояния из fail () jQuery?Проблема с iphone / ipad / Safari - PullRequest
0 голосов
/ 12 декабря 2018

Проблема в том, что Safari (на iphone / ipad и т. Д.) Возвращает 0 вместо 200 (даже если ответ в порядке), как и ожидалось.Это странно, но есть решение для всего.Но я очень озадачен тем, как на самом деле я получаю значение статуса в fail() -part ...

Я пытался решить проблему с кодом ниже

Se кода ниже: Я получаю xhr.status (его значения на самом деле не определены. Разве это не ноль!?)

    var f_useraccounts = $.ajax({
        type: 'GET',
        data:{
            action: 'fetch_useraccounts',
            cache: false,
            frmSSN: ssn,
            frmBank: bank
            },
            url: ajaxobject.ajax_url,
            dataType: 'html'
    });

    f_useraccounts.done(function(content_data) {
        alert('Working fine!'); (
       $('#choose-account').html(content_data);                                      
       $('#choose-account').show();
       $('#autogiro-accounts').hide();
       $('#step3step2').css('text-decoration', 'line-through');         
    });

    f_useraccounts.fail(function(xhr) { 

        //Retry...
        ajax_attempts++;            

        //Safari (iphone/ipad etc) returns zero even if readystate = 4 (done)
        //Every other browser in the world returns 200 when status ok
        if ( xhr.readyState <4 && xhr.status == 0 ) {
            if (ajax_attempts > 4) {
                $('#choose-account').hide();
                $('#autogiro-accounts').show();
                $('#step3step2').css('text-decoration', 'none'); 
                return;
            }
            $.ajax(this);
            return;
        }

        //Safari (iphone/ipad etc) returns zero even if readystate = 4 (done)
        //Every other browser in the world returns 200 when status ok
        if ( xhr.readyState == 4 && xhr.status == 0 ) {
           $('#choose-account').html(content_data);                                      
           $('#choose-account').show();
           $('#autogiro-accounts').hide();
           $('#step3step2').css('text-decoration', 'line-through');   
        }


   });

});

Я получаю значение xhr.status равным undefined.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...