如果发送空的json值,则$ _POST为空

时间:2017-06-23 23:08:20

标签: php json ajax post

以下是我发送的方式:

$.ajax({
    url: `/api/task/${taskId}`,
    type: 'POST',
    data: JSON.stringify({test: []}),
    contentType: 'application/json'
});

或者像这样(尝试过两者):

$.ajax({
    url: `/api/task/${taskId}`,
    type: 'POST',
    data: {test: []}
});

在接收端,如果我访问$ _POST,则为空。如果我访问file_get_contents(' php://输入'),那么它包含我的json。

这里发生了什么?

1 个答案:

答案 0 :(得分:2)

$_POST仅包含作为表单一部分提交的urlencoded变量。在这里,您不是将JSON数据作为变量发布,而是作为有效负载发布。

因此,您需要像处理文件一样从请求输入中读取它。