Как получить полезную нагрузку запроса
Я использую PHP, ExtJS и ajax store.
Он отправляет данные (на создание, обновление, уничтожение) не в POST или GET. В Chrome Console Я вижу мои исходящие параметры как 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-это поток только для чтения, который позволяет читать raw данные из тела запроса. В случае 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
).... значения будут отправлены как часть параметров запроса в виде в отличие от необработанного поста (через docs для кодирования конфигурации Ext.данные.писатель.Json)
обновление
и docs говорят, что:
параметр encode должен быть установлен только в true, когда определен корень
так, наверное,
writer
' s конфиг.