我正在使用PHP、ExtJS和ajax 商店。
它发送数据(在创建、更新、销毁时)而不是在 POST 或 GET 中。在Chrome 控制台中,我在“请求有效负载”字段中看到我的传出参数为 JSON 。$_POST 和$_GET为空。
如何在PHP中检索它?
我正在使用PHP、ExtJS和ajax 商店。
它发送数据(在创建、更新、销毁时)而不是在 POST 或 GET 中。在Chrome 控制台中,我在“请求有效负载”字段中看到我的传出参数为 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 是一个只读流,允许您从请求正文中读取原始数据。对于 POST 请求,最好使用 php://input 而不是 $HTTP_RAW_POST_DATA,因为它不依赖于特殊的 php.ini 指令。此外,对于默认情况下不填充 $HTTP_RAW_POST_DATA 的那些情况,它可能是激活 always_populate_raw_post_data 的一种内存密集程度较低的替代方法。php://input 不适用于 enctype="multipart/form-data"。