PhoneGap:从未发送过一些AJAX POST

时间:2015-01-05 20:51:39

标签: android cordova jquery-mobile

我的PhoneGap应用程序是使用jQuery mobile构建的,目前我正在Android上进行测试。设置jqm中的跨域参数,我使用通配符作为phonegap“access”-origins。该应用程序使用AJAX进行一些JSON通信。现在所有的ajax GET似乎都没有问题,但是大约有40%的POST从未到达我的服务器(即使不是标题,日志也没有显示这些帖子的迹象)。所有的帖子都是非常基本的ajax调用完全相同的地址,有一些最小的json-load,比如id和一些短值。我正在使用Chrome设备检查并确认帖子看起来一致,但这些帖子中约有40%会将状态保持为“待定”状态,并最终会超时。

我已经阅读了有关缓存的内容,后期数据始终是唯一的,但我已将nocache-headers添加到服务器响应中。邮件永远不应该被缓存,但无论如何这对我没有帮助。

裸jqm-app在浏览器中运行良好。嵌入在phonegap中,一些帖子失败了..有没有人有线索?

2 个答案:

答案 0 :(得分:0)

尝试将这些选项添加到jQuery.ajax调用

dataType: 'jsonp',
cache: false

第一个允许跨域帖子,第二个确保每个请求都收到绕过浏览器端缓存的唯一参数

答案 1 :(得分:0)

好的,我已经设置了第二个测试项目,其中只有短时间间隔(如2s)发送ajax请求(post和get)的功能。事实证明,这也是获得超时的地方,经过几次迭代,一切都刚刚结束。

最近我在开发过程中遇到了Chrome崩溃问题,因此我设置了服务器以进行一些排列良好的日志记录。这次我没有从Eclipse启动应用程序,但断开了我的手机并在手机上手动启动了它。猜猜看:一切正常,所有ajax请求都到达服务器。

我已经测试过没有Chrome DevTools设备检查,但手机连接到USB:没有帮助。但Chrome频繁崩溃仍然让我怀疑它在连接电脑时与它有关。

更新: 当发送一些更大的请求时,我再次遇到问题,比如base64中的图像。现在我在我的服务器上设置标题“Connection:close”,即使Chrome DevTools检查,事情看起来也很平稳,除了Chrome崩溃。