如果发送了异步请求,则错误回调不起作用,但是成功!并且在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/