Я использую 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
.