0

我正在尝试构建一个大量利用 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 请求,以便我可以看到页面上发生了什么?

4

2 回答 2

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
                    }
                }
            });
于 2012-07-10T12:20:51.190 回答
1

$.getJSON发送 GET 请求。

您需要$.ajax使用method: "POST"type: "json"

于 2012-07-06T18:32:17.373 回答