Maison  >  Article  >  développement back-end  >  Comment décoder les données JSON d'Ajax en PHP ?

Comment décoder les données JSON d'Ajax en PHP ?

DDD
DDDoriginal
2024-10-31 05:03:30557parcourir

How to Decode JSON Data from Ajax in PHP?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn