Article mis à jour le : 05-05-2022
Comprendre pourquoi le tableau $_POST est vide quand on envoie des données en JSONL'envoie de données en json, par exemple avec une requête Ajax, en POST, suprend plus d'un quand il s'agit de récuperer les dites données côté PHP.
Prenons l'exemple de ce petit script, côté js :
$.ajax({
url: 'http://www.monsite.com/adresse',
method: 'post',
data: JSON.stringify({a: 'moi', b: 'toi'}),
contentType: 'application/json'
});
Un var_dump côté PHP vous retournera ceci :
array(0) { }
Pourquoi? Parce que PHP ne traite les données envoyées via une requête de type POST que si le contenu est de type application/x-www-form-urlencoded ou multipart/form-data.
Dans les autres cas, il faut faire le travail soit-même :
$_POST = json_decode(file_get_contents('php://input'), true);