まずは、httpでのAjaxリクエストは正常に動作します。問題は、httpsで完全に同じAjaxリクエスト(GET)を実行しようとしているときに始まります。Android用Cordovaアプリ(XDKでビルド)は、HTTPSでAjax-requestsをブロックします
WEINREを使用してデバッグしているときに、要求が保留状態にとどまっていることがネットワークタブに表示されますが、ステータスが0でその他のプロパティが空の偽の空の応答が返されます。それ以上に、サーバーの側はこれらの要求を決して受け取りません。 Androidのように見えるだけで、彼らは行くことができません。 <access>
、<allow-intent>
、<allow-navigation>
:アプリを構築する前に
は、私はどこでもXDKでのビルド設定でワイルドカード*
を設定します。
<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src * 'unsafe-inline'; media-src *">
<meta http-equiv="Content-Security-Policy" content="default-src * https: 'unsafe-eval' 'unsafe-inline'">
追加の事実:
1)私は、iOS用と同じアプリを構築する場合、それは何の問題もなく動作します私はまた、次のCSPを追加しました。 Androidのトラブルだけです
2)httpsでのAjaxリクエストは、Androidで動作することはありますが、まれにしか動作しません。だから私は彼らが毎回ブロックされているとは言えませんが、動作しているときとそうでないときは条件を見つけることができません。しかし、ほとんどの場合、動作しません。
3)以前はうまくいきました。私が話している行動はずっと前に現れた。私は、この問題がサーバー側のSSL証明書(たとえば期限切れ)と関連している可能性があると考えていましたが、デスクトップブラウザーは問題については報告しません。 URL文字列はまだ緑色です。
https://www.ssllabs.com/ssltest/でサーバーをテストできますか?結果は不完全なチェーンについて話しますか? – Tom
@Tom、ssllabs.comでは、カスタムポート(443ではなく)のサーバーを確認することはできません。私のサーバーは8085です。代わりにhttp://ssl-checker.online-domain-tools.comを使用しました。そして、はい、私のサーバーのSSL証明書は信頼できませんでした。だから、それが理由だろうか?ただし、デスクトップブラウザでは問題は報告されません。URL文字列は緑色です。 – splash27
中間証明書を持つ証明書チェーンに問題がある可能性があります。 – Tom