Maison > développement back-end > tutoriel php > Pourquoi mes valeurs Angular HTTP POST ne sont-elles pas définies en PHP et comment puis-je y remédier ?

Pourquoi mes valeurs Angular HTTP POST ne sont-elles pas définies en PHP et comment puis-je y remédier ?

Barbara Streisand
Libérer: 2024-12-15 15:33:15
original
392 Les gens l'ont consulté

Why are my Angular HTTP POST values undefined in PHP, and how can I fix it?

Angular HTTP POST vers PHP : gérer les valeurs POST non définies

Dans AngularJS, l'exécution de requêtes HTTP POST vers des points de terminaison PHP peut parfois entraîner des valeurs indéfinies Valeurs POST côté serveur. Cela peut se produire lorsqu'il y a une incompatibilité entre le format de données attendu et les données réelles envoyées par l'application Angular.

Pour résoudre ce problème, il est crucial de s'assurer que l'en-tête Content-Type est défini de manière appropriée. Par défaut, AngularJS définit cet en-tête sur « application/json ». Cependant, si vous envoyez des données codées sous forme de formulaire, cela doit être remplacé.

Dans le code fourni, la ligne suivante définit l'en-tête Content-Type sur "application/x-www-form-urlencoded; charset=UTF-8":

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
Copier après la connexion

Cependant, cela nécessite de modifier les données envoyées pour qu'elles correspondent au format encodé du formulaire. Au lieu d'envoyer les données sous forme d'objet, elles doivent être converties en chaîne de requête. Cela peut être fait en utilisant jQuery.serialize() ou en créant manuellement la chaîne de requête avec encodeURIComponent().

Alternativement, si vous préférez utiliser la fonctionnalité $_POST de PHP, vous pouvez conserver le paramètre d'en-tête par défaut et modifier le Code PHP pour lire l'entrée brute du corps de la requête et décoder le JSON. Ceci peut être réalisé avec le code suivant :

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;
Copier après la connexion

En alignant le format des données et les paramètres d'en-tête, vous pouvez vous assurer que les valeurs POST sont correctement reçues côté PHP.

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!

source:php.cn
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