J'utilise PHP , ExtJS et magasin ajax.
Il envoie des données (sur créer, mettre à jour, détruire) pas dans POST ou GET. Dans le Console Chrome je vois mes paramètres sortants comme JSON dans le "Demande Payload "champ. $ _PART et $ _GET sont vides.
Comment le récupérer en PHP?
Si je comprends bien la situation, vous ne faites que transmettre des données JSON par le biais du corps http, au lieu de application/x-www-form-urlencoded
Les données.
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 alors 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 demande. Dans le cas de POST requêtes, il est préférable d'utiliser php: // input au lieu de $ HTTP_RAW_POST_DATA car cela ne dépend pas de directives php.ini spéciales. De plus, dans les cas où $ HTTP_RAW_POST_DATA n’est pas renseigné par défaut, c’est une alternative potentiellement moins gourmande en mémoire que l’activation de always_populate_raw_post_data. L’entrée php: // n’est pas disponible avec enctype = "multipart/form-data".
Vous pouvez aussi configurer extJs writer
avec encode
: true
et il enverra des données régulièrement (et, par conséquent, vous pourrez récupérer des données via $_POST
et $_GET
).
... les valeurs seront envoyées dans les paramètres de la requête, par opposition à une publication brute (via docs pour la configuration d'encodage de Ext.data.writer.Json)
MISE À JOUR
Aussi docs dire que:
L'option encode ne doit être définie sur true que si une racine est définie
Donc, probablement, la configuration writer
de root
est requise.