【问题标题】:Android Hybrid App : JQueryMobile ajax is not working with https but works with httpAndroid 混合应用程序:JQueryMobile ajax 不适用于 https 但适用于 http
【发布时间】:2014-09-10 14:39:45
【问题描述】:

我们有一个基于 JQueryMobile [所有 JS/CSS/HTML 都打包在 APK 中] 的混合 android 应用程序。这个应用程序能够使用 JQM ajax 调用 [for http url] 从服务器 [使用 RESTful 接口] 获取 json 数据,但是当我们尝试使用 https 做同样的事情时它会失败。

另一点是:我们使用基于 bouncycastle 的证书来启用 TLS [在服务器上],这与原生 android 调用 [使用 java] 配合良好。

现在我们很困惑为什么它可以使用 http 而不是 https。在这方面的任何提示将不胜感激。我们认为这与 CORS/XOR 问题无关,因为我们的 ajax http 调用工作正常。

【问题讨论】:

    标签: javascript android ajax jquery-mobile bouncycastle


    【解决方案1】:

    我假设您使用的是 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() 来接受这样的证书。谢谢。
    猜你喜欢
    • 2014-08-15
    • 1970-01-01
    • 2019-02-28
    • 2015-01-05
    • 2018-07-20
    • 2013-11-30
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    相关资源
    最近更新 更多