Maison > développement back-end > tutoriel php > Pourquoi mes variables AngularJS $http.post() ne sont-elles pas définies dans mon script PHP ?

Pourquoi mes variables AngularJS $http.post() ne sont-elles pas définies dans mon script PHP ?

Linda Hamilton
Libérer: 2024-12-22 16:22:14
original
630 Les gens l'ont consulté

Why are my AngularJS $http.post() variables undefined in my PHP script?

AngularJS : HTTP POST Variables non définies avec PHP

Lors de la soumission d'un formulaire AngularJS en utilisant $http.post(), variables reçues par le PHP le script peut apparaître comme indéfini, malgré la réception d'un 200 OK réponse.

Causes

Par défaut, AngularJS définit l'en-tête Content-Type sur application/json pour les requêtes HTTP POST. Cependant, si une charge utile codée sous forme de formulaire est envoyée à la place des données JSON, PHP ne remplira pas le tableau $_POST comme prévu.

Solutions

Il existe deux solutions principales :

  1. Utiliser le JSON par défaut En-tête :

    • Conservez l'en-tête Content-Type par défaut de application/json.
    • En PHP, lisez l'entrée brute et désérialisez les données JSON à l'aide de json_decode().
  2. Envoyer le formulaire codé Données :

    • Définissez l'en-tête Content-Type sur application/x-www-form-urlencoded.
    • Formez manuellement une chaîne de requête telle que email=example@email. com&password=secret et envoyez-le en tant que charge utile de données.
    • Assurez-vous d'encoder l'URL de la chaîne de requête à l'aide de encodeURIComponent().

Exemple PHP modifié

Pour la deuxième solution :

$query_string = file_get_contents("php://input");
parse_str($query_string, $data);
$email = $data['email'];
$password = $data['password'];
Copier après la connexion

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