Maison > développement back-end > tutoriel php > Pourquoi les données de requête Axios POST sont-elles manquantes dans les variables $POST et $REQUEST de PHP ?

Pourquoi les données de requête Axios POST sont-elles manquantes dans les variables $POST et $REQUEST de PHP ?

Mary-Kate Olsen
Libérer: 2024-10-22 23:17:29
original
1076 Les gens l'ont consulté

Why is Axios POST Request Data Missing from PHP's $POST and $REQUEST Variables?

Paramètres de publication Axios non disponibles dans les variables PHP

Cet extrait de code utilise la bibliothèque Axios pour effectuer une requête POST, en définissant l'en-tête Content-Type à application/x-www-form-urlencoded :

axios({
    method: 'post',
    url,
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    data: {
        json,
        type,
    }   
})  
Copier après la connexion

Cependant, les variables PHP équivalentes, $_POST et $_REQUEST, restent vides après la requête. Au lieu de cela, file_get_contents("php://input") semble recevoir les données.

Cause et solution

L'écart provient de la façon dont Axios sérialise les données par défaut . Il convertit les objets JavaScript en JSON, que PHP ne prend pas en charge nativement pour remplir $_POST. PHP n'accepte que les formats traitables par machine pris en charge par les formulaires HTML : application/x-www-form-urlencoded et multipart/form-data.

Pour résoudre ce problème, vous disposez de plusieurs options :

  • Navigateur :

    • Utilisez l'API URLSearchParams :

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

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

    • Ajustez PHP pour gérer JSON selon cette réponse : [lien vers la réponse]

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