这段jQuery代码发布到我们的一个php页面。
var json = '{"object1":{"object2":[{"string1":val1,"string2":val2}]}}';
$.post("phppage", json, function(data) {
alert(data);
});
在内部资格中,我必须根据发布数据进行一些处理。但我无法阅读帖子数据。
foreach ($_POST as $k => $v) {
echo ' Key= ' . $k . ' Value= ' . $v;
}
答案 0 :(得分:5)
使用file_get_contents("php://input")
来捕获脚本在未使用key=value
对时收到的数据。这种方法在jsonrpc API中很常见。
答案 1 :(得分:4)
你所拥有的应该可以正常工作,但是当JSON对象被赋予POST数据时,它将变成一个数组数组。你会得到这样的东西:
["object1"]=>
array(1) {
["object2"]=>
array(1) {
[0]=>
array(2) {
["string1"]=>
string(4) "val1"
["string2"]=>
string(4) "val2"
}
}
}
}
所以object1是一个包含所有其他数据的数组。如果你这样做
foreach ($_POST as $key => $val) {
echo $key . " > " . $val
}
打印出“object1> Array”。换句话说,您还需要遍历该值。如何执行此操作取决于您接收的数据的结构,或者您是否知道它的结构。
答案 2 :(得分:0)
而不是:
$.post("phppage", json, function(data) {
alert(data);
});
成功:
$.post("phppage", 'json':json, function(data) {
alert(data);
});
更改为:
$json=json_decode($_POST['json']);
foreach($json as $k => $v) {
echo ' Key= ' . $k . ' Value= ' . $v;
}
或:
$json=json_decode($_POST['json']);
print_r($json);