Maison >développement back-end >tutoriel php >Pourquoi spécifier `contentType: \'application/json; charset=utf-8\'` inutile lors de l'envoi de données JSON à PHP à l'aide d'Ajax ?
Envoi de données JSON vers PHP à l'aide d'Ajax
Dans le but de transférer des données au format JSON vers PHP pour traitement, les développeurs peuvent rencontrer des obstacles. L'un de ces défis consiste à transmettre des données JSON via Ajax à un script PHP.
Dépannage de l'échec de la transmission Ajax JSON
Pour résoudre ce problème, consultez l'extrait de code suivant :
<code class="javascript">$.ajax({ type: "POST", dataType: "json", url: "add_cart.php", data: {myData: dataString}, // Remove this line: contentType: "application/json; charset=utf-8", success: function(data) { alert('Items added'); }, error: function(e) { console.log(e.message); } });</code>
La suppression de la ligne contentType : "application/json; charset=utf-8" est cruciale. Lors de l'envoi de données JSON à PHP à l'aide d'Ajax, il n'est pas nécessaire de spécifier le type de contenu comme JSON. Au lieu de cela, PHP analysera automatiquement les données transmises sous forme de chaîne JSON.
Approche simplifiée
Pour simplifier davantage le processus, éliminez l'utilisation de JSON.stringify et json_decode. Passez simplement l'objet de données directement à la requête Ajax :
<code class="javascript">data: {myData: postData},</code>
En PHP, accédez aux données JSON via $obj = $_POST['myData'];.
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!