使用getJSON将JSON对象发布到PHP页面并检索JSON对象

时间:2012-07-06 18:30:20

标签: php jquery json getjson

我正在尝试构建一个大量利用JSON进行数据访问的HTML5应用程序。在几个实例中,我想使用getJSON对象(使用JavaScript和JQuery)将JSON对象发布到PHP页面。然后,该PHP页面将获取JSON对象,执行一些业务逻辑,然后将单独的JSON对象返回到调用页面。

我可以获得一个返回到调用页面的有效JSON对象,但我似乎无法获取我在原始请求中传递的JSON对象。我试过$ _GET,$ _POST和其他几个选项。一切都没有用。

这是我在原始页面上的代码。它非常简单 - 当用户单击按钮时,我们执行一个AJAX调用,将JSON对象传递给名为receive_jason.php的页面。此页面应该评估传入的JSON对象并将另一个JSON对象返回到原始页面。

第1页:

<html lang="en">
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
</head>

<script type="text/javascript">
function StartPost()
{
var strJSON = '{"id":"3","artist":"The Beatles","alblum":"White Alblum"}';
var jsonURL = "receive_json.php";

$.getJSON(  jsonURL, 
            strJSON, 
            function(data) {
                var items = [];

                responseMsg     = data["success"];
                alert(responseMsg);

    });

}

</script>

<body>
     <input type="button" name="Post Data" value="Post Data" onClick="StartPost();">
</body>

</html>

以下是receive_json.php页面上的PHP代码......

<?php
    $incomingData = $_GET['artist'];
    $myText =(string) $incomingData;
    echo "{\"success\":\"" . strlen($myText) . "\"}";
?>

为了清楚起见,getJSON调用有效,我确实在返回时收到了一个有效的JSON调用。但我无法访问我传入的JSON对象。

我的问题......

1)这只是一个我可以解决的简单语法错误吗?

2)getJSON甚至是这个任务的正确功能吗?

3)我是否有一种简单的方法来调试getJSON请求,以便我可以看到页面上发生了什么?

2 个答案:

答案 0 :(得分:1)

$.getJSON发送GET请求。

您需要将$.ajaxmethod: "POST"type: "json"一起使用。

答案 1 :(得分:1)

使用类似的东西:

$.ajax({
                url: "yourfile_orserverfile.php",
                type: "POST",
                data: {
                  //whatever your data is
                }
                datatype: "json",
                success: function (status) {
                    if (status.success == false) {
                        //alert a failure message
                    } else {
                        //alert a success message
                    }
                }
            });