我运行下面的代码以将数据作为JSON对象发送
var jdata = JSON.stringify(grid.serialize());
$.ajax({
'type': 'POST',
'url': 'print.php',
'data': jdata, //assuming you have the JSON library linked.
'contentType': "application/json",
'success': function (data) {
alert(data);
},
'error': function (x, y, z) {
alert(x.responseText);
// x.responseText should have what's wrong
}
});
alert(JSON.stringify(grid.serialize()));
在ajax函数打印后,当前为警报
[{{id“:” 1“,” col“:” 1“,” row“:” 1“,” size_y“:” 1“,” size_x“:” 1“},{” id“:” 2 “,” col“:” 2“,” row“:” 1“,” size_y“:” 1“,” size_x“:” 1“}]
在接收页面上,我正在使用
<?php print_r($_POST) ?>
来查看正在发送的页面,并且该页面不断输出Array
(
)
我一定错过了一些简单的东西,但一直无法弄清楚是什么。也许新鲜的眼睛会看到我犯的一个简单错误。
最佳答案
我认为$_POST
仅在您发送编码为x-www-form-urlencoded
的数据时填充。因此,只需将JSON字符串分配给键(jQuery会对其进行正确编码):
'data': {data: jdata}
并删除
'contentType': "application/json"
部分。然后,您可以使用以下命令在PHP中获取数据:
$data = json_decode($_POST['data'], true);
或者,使用PHP获取请求的原始正文并进行处理:How to retrieve Request Payload