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

Я использую PHP , ExtJS и ajax store .

Он отправляет данные (при создании, обновлении, уничтожении) не в POST или GET. В консоли Chrome я вижу мои исходящие параметры как JSON в поле « Запрос полезной нагрузки ». $ _POST и $ _GET пустые.

Как получить его в PHP?

Если я правильно понимаю ситуацию, вы просто передаете данные 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: // вместо $ 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 ).

… значения будут отправляться как часть параметров запроса, в отличие от сырой почты (через документы для кодировки config из Ext.data.writer.Json)

ОБНОВИТЬ

Также документы говорят, что:

Параметр encode должен быть установлен только в true, когда определяется корень

Поэтому, вероятно, требуется root конфигурация writer .