如何检索请求有效负载

How to retrieve Request Payload

本文关键字:请求 有效 负载 检索 何检索      更新时间:2023-09-26

我正在使用PHP,ExtJS和ajax存储。

它发送的数据(在创建、更新、销毁时(不在 POST 或 GET 中。在Chrome控制台中,我在"Request Payload"字段中看到我的传出参数为JSON。 $_POST$_GET为空。

如何在PHP中检索它?

如果我

正确理解这种情况,您只是通过 http 正文传递 json 数据,而不是application/x-www-form-urlencoded数据。

您可以使用以下代码段获取此数据:

$request_body = file_get_contents('php://input');

如果你正在传递 json,那么你可以这样做:

$data = json_decode($request_body);

然后$data包含 JSON 数据是 php 数组。

php://input是一个所谓的包装器。

php://input 是一个只读流,允许您读取原始数据 从请求正文。在开机自检请求的情况下,最好 使用 php://input 而不是 $HTTP_RAW_POST_DATA 因为它没有 依赖于特殊的 PHP.ini 指令。此外,对于以下情况 默认情况下不填充$HTTP_RAW_POST_DATA,它是一个潜在的 减少内存占用的激活替代方案 always_populate_raw_post_data。php://input 不适用于 enctype="multipart/form-data"。

您也可以使用 encode : true 设置 extJs writer,它将定期发送数据(因此,您将能够通过 $_POST$_GET 检索数据(。

。这些值将作为请求参数的一部分发送为 反对原始帖子(通过 Ext.data.writer.Json 的编码配置文档(

更新

文档还说:

仅当定义了根时,才应将编码选项设置为 true

因此,可能需要writerroot配置。