1

私はこの jquery と phonegap を初めて使用します。ローカル サーバーから .php ファイルのデータを解析するのが少し難しいと感じています。助けてください。

これは私の index.html ページです:

  <!DOCTYPE HTML>
    <html>
    <h2>JSON Parser</h2>
     <script type="text/javascript" src="jquery.js"/></script>
    <script type="text/javascript">
        function parseJSON()
           {

               var json;
               $.ajax({
                    type: 'POST',
                    url: 'http://192.168.1.12/training/services/login.php',
                    cache: false,
                    // data: $('#abc').serialize(),
                    dataType: 'json',
                    success: function(data){
                            alert(data);
                            $('#data').append(data);
                       }
                    });


              }
    </script>
    </head>
    <body onload="parseJSON()">
    <p>Employee's Information</p>
    <form id="abc" method ="post">
    <div id="data"></div>
    </form>
    </body>
    </html>

login.php ファイルには、サンプルの json データが次のように含まれています。

{"username":"test@test.com","password":"password"} 
4

2 に答える 2

0

phpとajaxを使用してデータを取得しようとしている場合は、jsonpを使用します。

PHPファイルにjson出力のコールバックを追加します。

echo $_GET['callback'] . '('.json_encode($data).')';exit;

ajax呼び出しにコールバックを追加します

Javascript:

$.ajax({
    url: 'http://192.168.1.12/training/services/login.php?callback=?',              
    cache: false,
    type: "GET",
    dataType: "jsonp",
    contentType: "application/json; charset=utf-8",
    success: function(data) {

    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert(errorThrown);
    }
});

最後になりましたが、ローカルホストのドメインホワイトリストを追加することを忘れないでください

corodova.xml内:

<access origin="http://192.168.1.12"/> OR
<access origin="*"/> to allow all domains 
于 2012-10-12T11:03:35.407 に答える
0

私が正しく理解していれば、あなたはそのようなことをするかもしれません。PHPページがHTMLページにデータを送信する場合は、POSTの代わりにGETを使用できます

<!DOCTYPE HTML>
<html>
<h2>JSON Parser</h2>
<script type="text/javascript" src="jquery.js"/></script>
<script type="text/javascript">
    function parse()
       {
           var json;
           $.ajax({
                type: 'GET',
                url: 'http://192.168.1.12/training/services/login.php',
                cache: false,
                dataType: 'json',
                success: function(data)
                   {
                        var obj = jQuery.parseJSON(data);
                        $('#data').html(obj["username"]);
                   }
                });
          }
</script>
</head>
<body onload="parse()">
<p>Employee's Information</p>
<form id="abc" method ="post">
<div id="data"></div>
</form>
</body>
</html>
于 2012-10-12T10:06:16.373 に答える