Phonegap 1.7.0 ajax超时不工作
我正在phonegap/cordova 1.7.0上工作。我正在向服务器发送ajax请求。 我需要设置一个超时以便模拟它我已经在服务器端包含一个睡眠(30),并且在客户端我的js的时间超出了30000.Phonegap 1.7.0 ajax超时不工作
经过测试,我断定Android完全忽略检查超时,iOS不能完成ajax调用,但不会给出任何错误。
有人可以帮助我吗?是否ajax超时在phonegap下不起作用,是否有另一种方法来检查phonegap超时? 这里是js代码:
$.ajax({
url: url,
data: data,
type: 'GET',
dataType: data_type,
timeout:3000,
error: function(xhr, status, error){
$('body').trigger('network-error') // triggers standard network error
console.log('network-error')
console.log('request came back with the error '+error)
CallbackFail()
},
success: function(data){
// is called from aSuccessCallback in the return
console.log('success')
console.log(data)
}
})
编辑
我忘了提一大点,我并没有直接使用jQuery而是仄。
首先,让自己变得简单。安装weinre http://people.apache.org/~pmuellr/weinre/,这将帮助您实时跟踪ajax请求;所以你可以看到来自服务器的确切的http响应(如果有的话)。基本上它具有与谷歌开发人员工具相同的界面。你会去“网络”选项卡来跟踪你的Ajax请求。
在一般情况下,有几个重要的注意事项,让AJAX调用时需要考虑:
确保服务器,您要发送您的AJAX请求,被列入白名单,否则您将无法向它发送任何ajax请求。 (以下是如何操作:http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html)
如果您通过https发送ajax请求,请确保您的服务器具有有效的证书;否则它将无法工作,除非您手动忽略手机中的无效证书。 iOS/android需要不同的步骤 - 如果是这种情况,我可以将您指向正确的*链接。
最后,只是想让你知道我在我的phonegap项目中发送ajax请求没有任何问题。超时正在按预期工作。
1.我确信服务器已被列入白名单 2.我也确定它是注释https 你使用什么库在phonegap上使用ajax? 也许问题来自那里,谢谢你的答案...... – AKFourSeven 2012-08-16 16:27:25
我也在使用jquery。你是否能够让你的Ajax请求工作?也可能是你的ajax错误回调中有一个javascript错误,这会使回调看起来不正常。这是weinre进入调试非常方便的地方! – Aki 2012-08-16 16:45:52
我使用的zepto库是一个轻量级jquery兼容的js库。看起来超时已经成为该图书馆的一个问题...... – AKFourSeven 2012-08-17 07:23:22
我去仄的github上,似乎AJAX超时一直是一个问题,在相当一段时间:
https://github.com/madrobby/zepto/issues/search?q=ajax+timeout
有一点说一下这是否已经或正在趋于与否。如果有人使用与我一样的库,它可能是一个好主意,直接使用jquery ...
好问题,我对这个问题也感兴趣。 – 2012-08-10 15:01:40