2016-06-17 10 views
1

私はPhonegapとJquery Mobileでアプリケーションを開発します。何らかの理由で私はhttpsドメインからデータを取得する必要もあります。 iOSのすべてが完璧に動作しますが、Android上で、私はいつも次のエラーを取得し、要求がphonegap ssl over android ajaxが失敗する

$(document).on("pageinit", function (event, ui) { 
    $("#test").click(function() { 
     $.ajax({ 
      type: "POST", 
      url: "https://test.sistecs.de/sismedia/test.php", 
      success: function (response) { 
       $("#testmsg").text(response); 
      } 
     }); 
    }); 
}); 

I'veはポストの数百を読んで、単純なサンプルコードをここで

06-17 17:16:33.890 6079-6154/de.sistecs.einlass E/chromium_net: external/chromium/net/socket/ssl_client_socket_openssl.cc:905: 
[0617/171633:ERROR:ssl_client_socket_openssl.cc(905)] handshake failed; returned -1, SSL error code 1, net_error -107 

を失敗しているが、didn'私の問題の解決策を見つけることができません。 サーバーの証明書https://test.sistecs.de/sismedia/test.phpが有効です。

誰かが私を助けることができますか?

答えて

1

これはクロスオリジンの問題のようです。

jQueryのモバイルを使用すると、$ .mobile.allowCrossDomainPages。また

<script> 
    $(document).on("mobileinit", function() { 
     $.mobile.allowCrossDomainPages = true; 
     $.support.cors = true; 
    }); 
</script> 

PHPのページはヘッダをそれに応じて設定していることを確認してくださいに真$ .support.corsを設定する必要があります。たとえば、次のように

<?php 
    header('Access-Control-Allow-Origin: *'); 
    header('Access-Control-Allow-Methods: GET,PUT,POST,DELETE'); 
    header('Access-Control-Allow-Headers: Content-Type'); 
    echo "test"; 
?> 

編集:私は、コードをテストしていない、それは一例です。あなたが必要とするように適応する。

0
var myJson = { 
     'Par1': 'par' 
    }; 

    $.ajax({ 
     url: baseUrlAjaxServices + "/....", 
     data: JSON.stringify(myJson), 

     method: "POST", 
     crossDomain: true, 
     dataType: 'json', 
     contentType: 'application/json', 
    }) 
    .done(function (data) { 
    //... 
    }).fail(function (error) { 
     console.log(error); 
    }); 
+0

thanxですが、動作しません –

関連する問題