Comment récupérer la charge utile de la demande
Je suis l'aide de PHP, ExtJS et ajax magasin.
Il envoie des données (sur create, update, destroy) pas dans POST ou GET. Dans la Console Chrome je vois mes paramètres sortants comme JSON dans le champ" Request Payload ". $_POST et $_GET sont vides.
Comment le récupérer en PHP?
2 réponses
Si je comprends bien la situation, vous passez simplement des données json à travers le corps http, au lieu de application/x-www-form-urlencoded
data.
Vous pouvez récupérer ces données avec cet extrait:
$request_body = file_get_contents('php://input');
Si vous passez json, alors vous pouvez faire:
$data = json_decode($request_body);
$data
contient ensuite les données JSON est un tableau php.
php://input
est un soi-disant wrapper .
Php: / / input est un flux en lecture seule qui vous permet de lire des données brutes à partir du corps de la requête. Dans le cas de la poste les demandes, il est préférable pour utiliser php: / / input au lieu de $HTTP_RAW_POST_DATA car ce n'est pas le cas dépend de php spécial.les directives ini. En outre, pour les cas où $ HTTP_RAW_POST_DATA n'est pas renseigné par défaut, il s'agit alternative moins gourmande en mémoire à l'activation always_populate_raw_post_data. php: / / l'entrée n'est pas disponible avec enctype = "multipart / form-data".
Aussi, vous pouvez configurer extJs writer
avec encode
: true
et il enverra régulièrement des données (et, par conséquent, vous serez en mesure de récupérer des données via $_POST
et $_GET
).
... les valeurs seront envoyées dans le cadre des paramètres de la requête opposé à un post brut (via docs pour encode config de Ext.données.écrivain.Json)
Mettre à jour
Aussi docs dire que:
L'option encoder ne doit être définie sur true que lorsqu'une racine est défini
Donc, probablement, la configuration root
de writer
est requise.