我正在尝试一个简单的测试来了解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,这是正确的吗?如果是这样,任何人都可以帮我找到错误吗?我已经尝试过很多其他解决方案,但是没有成功,所以我一定要错过一些简单的东西?
答案 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
});