1

我想使用本机 javascript 将 json 发送到 php 文件。为什么我来自 get-translation.php 的 $_POST 是空的?

var xmlhttp;
json_data = JSON.stringify(a_data);

if (window.XMLHttpRequest)
{
     xmlhttp=new XMLHttpRequest();
}
else
{
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("POST","get-translation.php",true);
xmlhttp.setRequestHeader("Content-type","application/json");

xmlhttp.send(json_data); // json_data is simple json
4

2 回答 2

0

您需要将 JSON 数据设为字符串:

json_data = JSON.stringify(json_data);
于 2013-07-22T14:44:24.280 回答
0

$_POST 仅适用于默认内容类型application/x-www-form-urlencoded。对于任何其他类型的数据(包括 JSON),您需要解析原始输入流。

file_get_contents('php://input')将返回原始请求正文。由于这是 JSON,因此您需要使用json_decode将 json 数据解析为关联数组。

$jsonData = json_decode(file_get_contents('php://input'));
于 2013-07-22T15:12:08.627 回答