Javascript 无法使用JSON从JQuery Ajax post获取PHP中的数据

Javascript 无法使用JSON从JQuery Ajax post获取PHP中的数据,javascript,php,jquery,json,http-post,Javascript,Php,Jquery,Json,Http Post,我正在尝试一个简单的测试来了解jqueryajaxpost方法,并且在我的服务器上设置了一个小示例。但是我不能让它工作 我的JavaScript如下所示: JavaScript: var json = {"Num String":"2","Num":3,"Num":11,"Num":2,"Num":"?"}; $.ajax({ type: "POST", url: "sampleJSONPost.php", data: json, //Data t

我正在尝试一个简单的测试来了解jqueryajaxpost方法,并且在我的服务器上设置了一个小示例。但是我不能让它工作

我的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变量似乎没有得到我在帖子中发送的JSON,这是正确的吗?如果是这样的话,有人能帮我找出问题所在吗?我已经尝试了很多其他的解决方案,但都没有成功,所以我肯定错过了一些简单的东西?

变成

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

      data: json,

试试这个

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
});

或者在服务器端$data=$\u POST;从ajax配置文件中删除数据类型:“json”行,并删除内容类型:“application/json;charset=utf-8”
    data: JSON.stringify({ json : json }),
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
});