Android混合应用程序:JQueryMobile ajax不能与https一起使用,但可以与http一起工作
问题描述:
我们有一个基于JQueryMobile [所有JS/CSS/HTML包装在APK中]的混合Android应用程序。此应用程序能够使用JQM ajax调用[用于http url]从服务器[使用RESTful接口]获取json数据,但是当我们尝试使用https执行相同的操作时,它会失败。Android混合应用程序:JQueryMobile ajax不能与https一起使用,但可以与http一起工作
另一点是:我们已经使用基于bouncycastle的证书来启用TLS [在服务器上],它可以使用原生android调用[使用java]正常工作。
现在我们很困惑,为什么它使用http而不是使用https。任何暗示在这方面将不胜感激。我们不认为这是与CORS/XOR问题有关,因为我们的Ajax http调用工作正常。
答
我假设你使用的是Android WebView类?如果是这样,检查错误是通过实施此方法的内容:
webView.setWebViewClient(new WebViewClient() {
public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
Log.d("ssl_error", "The error is: " + error);
}
与该代码,你可以看到什么样的错误,如果有的话,是导致空白页。如果这是您可以接受的错误,则将Log.d行替换为handler.proceed();
(使用if条件以验证它是相同的错误)。理想情况下,您应该纠正造成问题的任何问题。
我已经在意识到我使用自签名证书后解决了[9月15日本身],我必须使用handler.proceed()来接受这样的证书。谢谢。 – kdk99 2016-07-21 04:48:05