Envoi de données JSON de JavaScript vers PHP
Le transfert de données JSON de JavaScript sur le navigateur vers un serveur PHP pour analyse peut être réalisé via plusieurs méthodes.
Méthode A : Utilisation de application/json En-tête
- En JavaScript, convertissez l'objet en chaîne JSON à l'aide de JSON.stringify().
- Envoyez la chaîne JSON au serveur à l'aide de XMLHttpRequest avec l'application/json header :
request.setRequestHeader("Content-type", "application/json");
request.send(str_json);
- Sur le serveur PHP, lisez les données brutes POST en utilisant file_get_contents('php://input') pour obtenir la chaîne JSON.
Méthode B : Utilisation de l'en-tête application/x-www-form-urlencoded
- Convertissez l'objet JSON en une chaîne POST standard en utilisant JSON.stringify() et le format json_string=....
- Envoyez la chaîne POST au serveur en utilisant XMLHttpRequest avec l'en-tête application/x-www-form-urlencoded.
- En PHP, accédez à la chaîne JSON à partir du $ Tableau _POST['json_string']. Utilisez json_decode() pour analyser la chaîne JSON récupérée.
Piège :
Tentative d'envoyer la chaîne JSON avec l'application/x-www-form- urlencoded, puis y accéder via $_POST entraînera un tableau vide, car PHP attend des données dans le fichier yval=xval& format. Par conséquent, utilisez php://input pour accéder aux données POST brutes lorsque vous utilisez l'en-tête application/json.
Ressources supplémentaires :
- [Comment accéder à POST données en PHP](https://www.php.net/manual/en/features.http-post-vars.php)
- [RFC 4627 : Type de média application/json pour JSON](http://www.ietf.org/rfc/rfc4627.txt)
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