将JSON发布到PHP脚本

use*_*120 2 javascript php post json

我坚持很长一段时间,试图发送一个JSONjavascript一个PHP脚本:发送是好的(我可以看到JSON在提琴手),但我什么也得不到的PHP script:

javascript:

var person = {
  name: 'yoel',
  age: 28
};
xmlhttp.open("POST","http://localhost:8888/statisticsdb.php",true);
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(JSON.stringify(person));   
Run Code Online (Sandbox Code Playgroud)

php :

echo 'trying to print ' . var_dump($_POST["name"]);
Run Code Online (Sandbox Code Playgroud)

我希望很明显看到SOMETHING,但var_dump什么都不返回.非常感谢帮助!

Yos*_*shi 5

尝试:

$data = json_decode(file_get_contents('php://input'));
var_dump($data->name);
Run Code Online (Sandbox Code Playgroud)

原因是,你的POST请求的主体是:

{"name":"yoel","age":28}
Run Code Online (Sandbox Code Playgroud)

虽然,php期望类似(ref):

name=yoel&age=28
Run Code Online (Sandbox Code Playgroud)

无法正确解析json字符串,因此$_POST将为空.