PhoneGap:一些 AJAX POST 从未发送过

PhoneGap: some AJAX POSTs are never sent

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

我读过一些有关缓存的内容,post-data 始终是唯一的,但我已将 nocache-headers 添加到服务器响应中。我不应该缓存帖子,但这对我没有帮助。

裸 jqm-app 在浏览器中工作正常。嵌入在 phonegap 中,有些帖子失败了。有人知道吗?

尝试将这些选项添加到您的 jQuery.ajax 通话中

dataType: 'jsonp',
cache: false

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

好的,我已经建立了第二个测试项目,它只具有发送 ajax 请求的功能,包括 post 和获取,间隔很短(比如 2s)。结果发现也超时了,经过几次迭代,一切都超时了。

最近我在开发时遇到了 Chrome-crashes,所以我设置了我的服务器来做一些 well-arranged 日志记录。这次我没有从 Eclipse 启动应用程序,而是断开了我的 phone 并在 phone 本身上手动启动它。你猜怎么着:一切正常,所有 ajax 请求都到达服务器。

我已经在没有 Chrome DevTools 设备检查的情况下进行了测试,但是 phone 连接到 usb: 没有帮助。但是Chrome频繁死机还是让我怀疑是不是连接电脑的问题。

更新: 我 运行 在发送一些更大的请求时再次遇到问题,比如 base64 中的图像。现在我在我的服务器上设置 header "Connection: close" 并且事情看起来再次顺利,即使使用 Chrome DevTools 检查,除了 Chrome.

崩溃