我正在尝试将一个字符串化的json对象发送到php并在我解码后访问它,但我无法设法做到这一点,我在php中收到的是一个空... ...:
JS:
var bruh = {id: "509", type: "14", sortorder: "0", status: "1", name: "Pop-up SaaS", title: "test", request: true};
serializedData = JSON.stringify(bruh);
request = $.ajax({
url: url,
type: "POST",
dataType: "JSON",
data: serializedData
});
request.done(function (response, textStatus, jqXHR){
console.log("Hooray, it worked!"+response, textStatus, jqXHR);
});
PHP:
header('Content-Type: application/json');
$article = json_decode($_POST['data']); // $_POST['data'] is null don't know why
我如何知道$ _POST为空?好吧,我正在输出结果并检查我的console.log上的响应,如下所示:
echo json_encode($_POST['data']);
echo json_encode($_POST);
echo json_encode($_POST[0]);
echo $_POST['data'];
print_r($_POST); //SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
我收到的确切回复是(通过Firebug):
readyState 4
responseJSON null
responseText "null"
status 200
statusText "OK"
有人可以帮我解决这个问题吗?
更新:我也尝试过这样发送:
serializedData =“{data:”+ JSON.stringify(bruh)+“}”;
但仍然没有结果
答案 0 :(得分:0)
尝试改变
4 4
1 2 -5
4 1 2
2 3 2
3 1 1
至data: serializedData
确认帖子字段'数据'确实被发布了,您可以使用fiddler或大多数浏览器内置的网络工具来检查标题。
在php中检查字段:
data: {'data': seralizedData},
答案 1 :(得分:0)
当dataType是json时,你必须在php文件中使用json_decode(file_get_contents('php://input'), true);
来绘制提交的数据。然后你就可以获得数据了。或者您可以删除dataType。
jQuery的:
var bruh = {id: "509", type: "14", sortorder: "0", status: "1", name: "Pop-up SaaS", title: "test", request: true};
$.ajax({
url: url,
type: 'POST',
data: bruh,
})
.done(function(data) {
console.log("Result " + data);
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
在php中你可以使用$_POST
,不需要json_decode。
echo $_POST['type']; // 14