无法从带有JSON的JQuery Ajax帖子获取PHP数据

时间:2014-03-20 11:39:24

标签: javascript php jquery json http-post

我正在尝试一个简单的测试来了解JQuery Ajax POST方法,我在我的服务器上设置了一个小例子。但是我无法工作。

我的JavaScript如下:

JavaScript的:

var json = {"Num String":"2","Num":3,"Num":11,"Num":2,"Num":"?"};
$.ajax({
        type: "POST",
        url: "sampleJSONPost.php",
        data: json, //Data to POST to the server
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function (jqXHR, status, err) {
            console.log("Error " + err + " " + status + " " + JSON.stringify(jqXHR)); //Log the Error 
        },
        success: function (data, status, jqXHR) {  
              console.log(JSON.stringify(data)); //Log the Data returned
              $("span").text(data);
        }
    });
};

这是我的PHP:

PHP:

<?php
$data = $_POST["data"];
echo json_decode($data);
?>

然而,这总是给我以下错误:

Error SyntaxError: Unexpected end of input parsererror {"readyState":4,"responseText":"","status":200,"statusText":"OK"} 

所以对我来说,看起来PHP中的$ data变量没有得到我用POST发送的JSON,这是正确的吗?如果是这样,任何人都可以帮我找到错误吗?我已经尝试过很多其他解决方案,但是没有成功,所以我一定要错过一些简单的东西?

3 个答案:

答案 0 :(得分:6)

转入

var json = {"data":{"Num String":"2","Num":3,"Num":11,"Num":2,"Num":"?"}};

答案 1 :(得分:1)

更改

      data: json,

    data: JSON.stringify({ json : json }),

答案 2 :(得分:1)

试试这个

var json = {{"Num String":"2"},{"Num":3},{"Num":11},{"Num":2}};

这个,我没有检查

$.ajax({
    type: 'POST',
    url: 'sampleJSONPost.php',
    contentType: 'application/json; charset=utf-8',
    data: { "Num String":"2","Num":3,"Num":11,"Num":2,"Num":"?" },
    dataType: 'json',
    success: function(data)
{

},
    error: AjaxFailed
});