2013-01-16 60 views
4

我有一个使用Cordova 2.0.0的Eclipse内置的Android应用程序。当使用Eclipse调试器构建并加载到手机中时,应用程序工作正常,但是当我在AndroidManifest文件中设置android:debuggable =“false”时,jQuery.ajax()POST失败。我无法告诉我LogCat跟踪中的失败原因。Android debuggable = false导致jQuery.ajax POST在Cordova/Phonegap Eclipse项目中失败

这里的jQuery.ajax电话:

jQuery.ajax({ 
    url: that.endpoint, 
    data: that.data, 
    dataType: "json", 
    type: "POST", 
    contentType: "application/json", 
    success: successHandler, 
    error: errorHandler, 
    timeout: serviceTimeout 
}); 

当机器人:可调试=“真”它工作正常,并进入到成功处理程序,但是当它的android:可调试=“假”时,进入到failureHandler,只有textStatus设置为“错误”,没有别的表明它失败的原因。当它失败时,似乎该帖子不会发生,因为我可以看到它没有打到我尝试呼叫的web服务。

有没有人有任何想法,为什么可调试标志可能会以这种方式影响我的应用程序?

“debuggable”标志会影响日志级别以外的其他事情吗?

任何提示或指针将不胜感激。

干杯

回答

5

找到原因吧。我的代码很好。问题在于我试图调用的web服务的SSL证书。虽然我的浏览器表示没问题,但当我使用SSL证书检查器(例如http://www.geocerts.com/ssl_checker)检查它时,它告诉我证书层次结构存在问题。修复证书允许我的代码工作。

我如此看来,Android是更严格与它的SSL证书检查

+0

谢谢。我真的花了很多时间试图找到问题。它也适用于我。 –

0

当你有你的应用程序设置为调试=假,从这里应用越来越它的数据,你必须指定URI。处于调试模式时,您的权限会放宽,而不是处于调试模式。请参阅此参考文献:http://developer.android.com/guide/topics/providers/content-provider-basics.html#Permissions

您的代码看起来很好,而且它仅在将应用程序设置为更严格的debug = false时告诉我您没有正确设置URI权限。无论如何,这就是我首先要看的地方。

+0

感谢崖从未有过这个问题与应用程序的iPhone版本(和它没有证书在调试模式下运行时检查。) - 好理念。我检查了这些东西,但我已经获得了INTERNET许可。我会在我的答案中解释解决方案。 – icewhite

+0

具有完美的感觉。此外,如果我无法将数据拉入我的某个应用程序,也可以立即进行调查,这也是一个很好的信息和知识点。 – cliffbarnes

相关问题