I’m using PHP, ExtJS and ajax store.
It sends data (on create, update, destroy) not in POST or GET. In the Chrome Console I see my outgoing params as JSON in the “Request Payload” field. $_POST and $_GET are empty.
How to retrieve it in PHP?
If I understand the situation correctly, you are just passing json data through the http body, instead of
You can fetch this data with this snippet:
$request_body = file_get_contents('php://input');
If you are passing json, then you can do:
$data = json_decode($request_body);
$data then contains the json data is php array.
php://input is a so called wrapper.
php://input is a read-only stream that allows you to read raw data
from the request body. In the case of POST requests, it is preferable
to use php://input instead of $HTTP_RAW_POST_DATA as it does not
depend on special php.ini directives. Moreover, for those cases where
$HTTP_RAW_POST_DATA is not populated by default, it is a potentially
less memory intensive alternative to activating
always_populate_raw_post_data. php://input is not available with
Also you can setup extJs
: true and it will send data regularly (and, hence, you will be able to retrieve data via
… the values will be sent as part of the request parameters as
opposed to a raw post (via docs for encode config of Ext.data.writer.Json)
Also docs say that:
The encode option should only be set to true when a root is defined
root config is required.