【发布时间】:2016-09-14 15:49:28
【问题描述】:
我有以下将数据发送到 PHP 函数的 javascript:
<script>
var mydata = {
id:123,
name: 'mike',
orders: []
};
$.ajax({
type: 'POST',
url: 'test.php',
data: {save_data:mydata},
success: function(data) {
alert('php received: ' + data);
}
});
</script>
而我的test.php 文件包含以下代码:
<?php
if (isset($_POST['save_data'])) {
$json = json_encode($_POST['save_data']);
echo $json; // just to check what has been received
exit();
}
?>
我期望从 PHP 收到的是:
{"id":"123","name":"mike","orders":"[]"}
我回复的是{"id":"123","name":"mike"}
请注意,orders 数组已从输出中删除。没有占位符。我尝试在数组中添加一些虚拟元素,效果很好,我收到了带有元素的数组。
我需要 PHP 按原样接收 json 对象,即使它包含空数组。
我该怎么做?
【问题讨论】:
-
您可以将 content-type 设置为 application/json 并发送原始 json,而不是将 json 数据作为 url 编码发送。然后在 php 中使用可以使用 file_get_contents("php://input") 获取数据
-
这不是 php。检查实际请求 - 没有那个空数组
标签: javascript php arrays json