没有为iPhone启动Ajax错误回调

时间:2016-06-04 05:28:16

标签: ios cordova jquery-ajaxq cordova-5.0.0 arrowdb

如果发送异步请求但错误回调不起作用,但成功确实如此!它在Android和浏览器中运行得非常好。 在iPhone中它适用于同步请求。这是我的代码。 其他apis工作得非常好。

$.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 个答案:

答案 0 :(得分:1)

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

似乎有几种方法可以解决这个401错误响应处理问题。一种是在发出AJAX请求和处理错误时添加超时超时属性。另一种方法是通过HTTPS发送请求并在401错误的情况下返回带有错误详细信息的身份验证令牌,在服务器端处理它。

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

目前你无法区分iOS中的这两个错误(401和408错误),因为我可以看到这个缺陷仍然在官方的Apache Cordova错误跟踪系统中打开。请你查看这个bug