2

getJSON メソッドを使用してサービスへのさまざまな呼び出しを行う Android PhoneGap アプリがあります。デバッグ時、またはデバッグ APK をデバイスにインストールするとき、これらの呼び出しはすべて問題なく機能します。リリース用の APK を作成して同じデバイスにインストールすると、失敗し始めます。

以下のコードは一例です。以下の関数のコンソールに記録されたエラーは次のとおりです。

ログインに失敗しました: エラー : : {"readyState":0,"responseText":"","status":0,"statusText":"error"}

            function getAppServerUrl(org, callBack) {
                console.log('call locator service : ' + org);
                $.getJSON('https://url_removed/loc/locator?id=' + org,
                    function (data) {
                        console.log('getAppServer returned ' + data);
                        appServer = data + '/';
                        callBack();
                    }).fail(function (jqXHR, textStatus, errorThrown) {
                        console.error('Login failed : ' + textStatus + 
                           ' : ' + errorThrown + 
                           ' : ' + JSON.stringify(jqXHR));
                    });
            }

config.xml にアクセス元が含まれていることを確認しました

<access origin="https://url_removed"/>

ワイルドカードも追加しました

<access origin="*"/>

前もって感謝します、、、

4

1 に答える 1

3

わかりました、さらに掘り下げて、答えを見つけました。最初の手がかりは、https から http に変更すると治ったように見えるということでした。

そこから、関連する投稿をいくつか見つけました。呼び出しているサーバーに SSL 証明書が正しくインストールされていないようです。以下の投稿にあるように、サーバーはデスクトップでは正常に表示されますが、Android ブラウザーでは失敗します。

証明書は PC では信頼されていますが、Android では信頼されていません

Phonegap はデバッグ時に不正な証明書を許可するため、アプリの署名付きリリース バージョンまで問題は発生しませんでした。

自己署名証明書を使用した HTTPS サーバーへの PhoneGap Ajax 呼び出しが失敗する

この情報が、同様の問題を抱えている他の人に役立つことを願っています。

于 2013-07-17T08:44:32.477 に答える