Как получить запрос полезной нагрузки
Я использую PHP, ExtJS и AJAX Store.
Он отправляет данные (при создании, обновлении, уничтожении) не в POST или GET. В консоли Chrome мои исходящие параметры отображаются как JSON в поле "Запросить полезную нагрузку". $ _POST и $_GET пусты.
Как получить его в PHP?
2 ответа
Если я правильно понимаю ситуацию, вы просто передаёте данные json через тело http вместо 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:// ввод недоступен с enctype="multipart/form-data".
Также вы можете настроить extJs writer
с encode
: true
и он будет отправлять данные регулярно (и, следовательно, вы сможете получать данные через $_POST
а также $_GET
).
... значения будут отправлены как часть параметров запроса, в отличие от необработанного сообщения (через документы для конфигурации кодирования Ext.data.writer.Json)
ОБНОВИТЬ
Также документы говорят, что:
Опция кодирования должна быть установлена в true только когда корень определен
Так что, наверное, writer
"s root
Конфиг требуется.