Maison > développement back-end > tutoriel php > Pourquoi Axios POST ne remplit-il pas $_POST en PHP avec des données JSON ?

Pourquoi Axios POST ne remplit-il pas $_POST en PHP avec des données JSON ?

Linda Hamilton
Libérer: 2024-10-23 01:04:30
original
547 Les gens l'ont consulté

Why Doesn't Axios POST Populate $_POST in PHP with JSON Data?

Les paramètres POST d'Axios ne remplissent pas $_POST

Lors de l'utilisation d'Axios pour effectuer une requête POST avec une charge utile composée de données JSON, PHP peut ne pas interpréter correctement les paramètres de $_POST ou $_REQUEST. Au lieu de cela, les données de la requête sont souvent accessibles via file_get_contents("php://input").

Cause première :

Par défaut, Axios sérialise les objets JavaScript en JSON. . Cependant, PHP ne prend pas en charge JSON comme format de données natif pour la population $_POST. Il n'accepte que les formats traitables par machine pris en charge par les formulaires HTML :

  • application/x-www-form-urlencoded
  • multipart/form-data

Solution :

Pour résoudre ce problème, vous pouvez modifier la requête Axios pour envoyer des données au format application/x-www-form-urlencoded, que PHP peut gérer correctement. Il existe deux options principales :

1. Utilisation de l'API URLSearchParams (navigateur uniquement) :

var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);
Copier après la connexion

2. Utilisation de la bibliothèque qs (Node.js) :

var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));
Copier après la connexion

Ces méthodes garantissent que les données de la requête sont correctement sérialisées au format application/x-www-form-urlencoded, les rendant accessibles via $_POST dans PHP.

Vous pouvez également modifier PHP pour gérer JSON comme format de données valide pour $_POST, mais cette approche est moins recommandée.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal