如果发送了异步请求,则错误回调不起作用,但是成功!并且在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,它可以正常工作,我会成功响应。

最佳答案

这似乎是Cordova + iOS + jQuery组合的一个非常普遍的问题。

似乎没有什么方法可以解决此401错误响应处理问题。一种是在发出AJAX请求并处理错误时添加超时属性。另一种方法是在服务器端通过在HTTPS上发送请求并返回带有错误详细信息的身份验证令牌(如果发生401错误)来处理它。

要求您查看此post以获得更多信息。

同样目前您还无法在iOS中区分这两个错误(401和408错误),因为我可以看到此缺陷在官方Apache Cordova Bug跟踪系统中仍然存在。请您检查此bug

关于ios - iPhone不触发Ajax错误回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37626712/

10-10 18:26
查看更多