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 页面,您可以使用 GET 而不是 POST

<!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 回答