Я использую PHP, ExtJS и ajax store.
Он отправляет данные (при создании, обновлении, уничтожении) не в POST или GET. В Консоль Chrome я вижу мои исходящие параметры как JSON в поле Request Payload. $_ POST и $_ GET пусты.
Как получить его в PHP?
Я использую PHP, ExtJS и ajax store.
Он отправляет данные (при создании, обновлении, уничтожении) не в POST или GET. В Консоль Chrome я вижу мои исходящие параметры как JSON в поле Request Payload. $_ 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
- это так называемый wrapper.
php://input - поток, доступный только для чтения, который позволяет вам читать исходные данные от органа запроса. В случае запросов POST предпочтительнее использовать вход php://вместо $HTTP_RAW_POST_DATA, поскольку он не зависят от специальных директив php.ini. Более того, для тех случаев, когда $HTTP_RAW_POST_DATA по умолчанию не заполняется, это потенциально менее энергоемкая альтернатива активации always_populate_raw_post_data. php://ввод недоступен с ENCTYPE = "многочастному/форм-данных".
Также вы можете настроить extJs writer
на encode
: true
, и он будет регулярно отправлять данные (и, следовательно, вы будете иметь возможность извлекать данные через $_POST
и $_GET
).
... значения будут отправляться как часть параметров запроса как (через docs для конфигурации кодировки Ext.data.writer.Json)
ОБНОВЛЕНИЕ
Также docs говорит, что:
Параметр encode должен быть установлен только в true, если определен корень
Итак, возможно, требуется writer
root
config.