Ajax Ошибка обратного вызова не срабатывает для iPhone

Ошибка обратного вызова не работает, если отправляется асинхронный запрос, но успешный -! и он прекрасно работает в Android и браузере. В iPhone это работает по синхронному запросу. вот мой код другие API работают отлично.

$.ajax({
        type: 'POST',
        url: "https://api.cloud.appcelerator.com/v1/users/login.json?key=xxxxxxxxx",
        data: {
            "login": useremail,
            "password": password
        },
        success: function (resp) {                                               
            console.log(resp);
            console.log('User logged-in successfully');               
        },
        error: function (e) {
            console.log(e)
        }
    });

API возвращает код состояния 200 для правильного адреса электронной почты и пароля, но 401 для неверного, поэтому, если код состояния равен 200, он работает хорошо, и я получаю ответ в случае успеха

1 ответ

Решение

Похоже, что это очень распространенная проблема с Cordova + iOS + jQuery combo.

Похоже, есть несколько способов решить эту проблему обработки ошибок 401. Одним из них является добавление атрибута тайм-аута при выполнении запроса AJAX и обработке ошибки. Другой подход заключается в том, чтобы обработать его на стороне сервера, отправив запрос по HTTPS и вернув обратно маркер аутентификации с подробной информацией об ошибке в случае ошибки 401.

Просим вас взглянуть на этот пост для получения дополнительной информации.

Также в настоящее время вы не можете различить эти две ошибки (ошибки 401 и 408) в iOS, так как я мог видеть, что этот дефект все еще открыт в официальной системе отслеживания ошибок Apache Cordova. Запросить вас, чтобы проверить эту ошибку

Другие вопросы по тегам