我正在使用PHP、ExtJS和ajax store。
它在创建、更新、删除时发送数据,但不是通过POST或GET方式。在Chrome控制台中,我可以看到我的传出参数以JSON格式显示在“请求有效载荷”字段中。而$_POST
和$_GET
为空。
如何在PHP中检索它?
我正在使用PHP、ExtJS和ajax store。
它在创建、更新、删除时发送数据,但不是通过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
包含 PHP 数组格式的 JSON 数据。
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" 时不可用。
writer
的根配置吗?这可能是必需的。对我来说,encode
可以工作。http://imageshack.us/f/32/20120308153201.png/ - Molecular Man