Как получить запрос полезной нагрузки

Я использую 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 Конфиг требуется.

Другие вопросы по тегам