我试图从.php file.php文件中获取json数据,即存储在server.I中已编写以下代码。但我无法获取数据

时间:2012-10-12 09:57:16

标签: php html json parsing cordova

我是这个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"} 

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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);
    }
});

最后但并非最不重要的是,不要忘记为您的localhost添加域名白名单

corodova.xml中的

<access origin="http://192.168.1.12"/> OR
<access origin="*"/> to allow all domains