我试图使用jquery将数据传递给php。我正在用javascript获取数据。
JQuery:
$.post("export.php", JSON.stringify(result)); //result is an array of object当我在chrome上使用调试器时,我可以在表单数据中看到这样的内容:{"id":"foo","x":0,"y":1,"z":8,"t":3}
但是,当我试图用php检索它时,它不起作用:
echo 'Before decode ';
$array=$_POST['data'];
echo 'After decode ';
echo $array;它只是在回响:在解码之前
我遗漏了什么?(我知道我应该对数据进行解码,以获得php中的数组,但我将其简化为查看问题的来源)
发布于 2014-07-02 07:10:52
通常,您甚至不必将数据转换为JSON:
$.post("export.php", { data: result });或者,您必须将JSON编码的主体从输入流中提取出来,即:
$array = json_decode(file_get_contents('php://input'), true);如果请求主体的内容类型没有广告为application/x-www-form-urlencoded,通常会发生这种情况。
发布于 2014-07-02 07:03:33
如果您想发送编码的JSON字符串并通过$_POST['data']访问它,则需要将结果包装在一个带有data键的对象中
$.post("export.php", {data: JSON.stringify(result)});然后,在您的服务器中,您可以这样解码它:
echo 'Before decode ';
$array = json_decode($_POST['data']);
echo 'After decode ';
print_r($array);发布于 2014-07-02 07:03:48
尝试在data变量中发布json,然后在export.php上获得$_POST['data']
$.post("export.php", {data : result});或者您可以使用file_get_contents()获得不带变量的已发布数据。
$data = file_get_contents('php://input');然后解码它json_decode()
https://stackoverflow.com/questions/24524734
复制相似问题