Décodage des données JSON d'Ajax en PHP
Lorsque vous essayez d'envoyer des données JSON à partir d'une requête Ajax vers un script PHP, vous pouvez rencontrer un problème où les données ne sont pas correctement reçues ou analysées. Pour résoudre ce problème, une question courante est de savoir comment envoyer efficacement des données JSON depuis Ajax et les décoder en PHP.
Solution
1. Supprimer l'en-tête Content-Type
Dans la requête Ajax, supprimez l'en-tête contentType :
$.ajax({ type: "POST", dataType: "json", url: "add_cart.php", data: {myData:dataString} });
2. Utiliser l'affectation directe de variables
En PHP, accédez aux données JSON directement depuis $_POST sans utiliser json_decode :
if(isset($_POST['myData'])){ $obj = $_POST['myData']; //some php operation }
Raison
La raison pour laquelle le code d'origine ne fonctionnait pas est que l'en-tête contentType était défini sur application/json. Cela indiquait à PHP que les données envoyées étaient au format JSON, ce qui n'est pas le cas. Les données sont en fait une requête POST normale qui contient une chaîne JSON.
En supprimant l'en-tête contentType, vous envoyez les données sous forme de requête POST normale et permettez à PHP de gérer automatiquement la conversion de chaîne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!