繁体   English   中英

Android debuggable = false导致Cordova / Phonegap Eclipse项目中的jQuery.ajax POST失败

[英]Android debuggable=false causing jQuery.ajax POST to fail in Cordova/Phonegap Eclipse project

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

这是jQuery.ajax调用:

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

当android:debuggable =“true”它工作正常并转到成功处理程序,但当它android:debuggable =“false”时它转到failureHandler,只有textStatus设置为“error”而没有其他任何东西来指示它失败的原因。 当它失败时,似乎帖子没有发生,因为我可以看到它没有点击我试图调用的web服务。

有没有人知道为什么debuggable标志可能以这种方式影响我的应用程序?

“可调试”标志会影响除日志记录级别以外的其他内容吗?

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

干杯

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

我的应用程序的iPhone版本从来没有遇到过这个问题,所以Android的SSL证书检查似乎更严格(在调试模式下运行时没有进行证书检查。)

当您将应用程序设置为debug = false时,您必须指定应用程序获取其数据的URI。 在调试模式下,您的权限是放宽的,而不是处于调试模式。 请参阅此参考: http//developer.android.com/guide/topics/providers/content-provider-basics.html#Permissions

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM