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 enctype="multipart/form-data".
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.
©2020 All rights reserved.