我使用PHP ,ExtJS的和阿贾克斯店。如何检索请求负载
它不在POST或GET中发送数据(创建,更新,销毁)。在Chrome控制台我在“请求负载”字段中看到我的传出参数为JSON。 $ _POST和$ _GET为空。
如何检索它在PHP中?
我使用PHP ,ExtJS的和阿贾克斯店。如何检索请求负载
它不在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
是所谓的wrapper。
php://输入是一个只读流,允许您从请求主体读取原始数据 。在POST请求的情况下,最好是 使用php://输入而不是$ HTTP_RAW_POST_DATA,因为它不依赖于特殊的php.ini指令,因此它不是 。此外,对于默认情况下未填充 $ HTTP_RAW_POST_DATA的情况,这是潜在的 较少的内存密集型替代方式,以激活 always_populate_raw_post_data。 php://输入不适用于 enctype =“multipart/form-data”。
您也可以设置ExtJS的writer
与encode
: true
,它会定期发送数据(和,因此,您将能够通过$_POST
和$_GET
检索数据)。
...的值将被发送作为请求的参数作为 (经由docs为Ext.data.writer.Json的编码配置)相对于一个原始post
UPDATE的一部分
而且docs说:
的编码选项应仅设置为true当根被定义
所以,可能writer
的root
配置是必需的。
encode:true - 没有任何变化。相同的发送方法。 – 2012-03-08 12:46:03
@NikitaKuhta,你有没有设置'作家'的根配置?它可能是必需的。 'encode'对我很有用http://imageshack.us/f/32/20120308153201.png/ – 2012-03-08 13:46:21
我可以检索数据。谢谢。 ! – 2012-03-08 12:50:28
非常感谢!我一直在寻找这个答案几天,并认为我疯了。 – Zacho 2012-08-11 20:32:30
标题是application/json – 2012-12-17 10:08:05