Maison > Article > interface Web > AngularJS vers PHP POST : Pourquoi mes variables ne sont-elles pas définies ?
Description du problème :
Lors de l'exécution d'une requête HTTP POST à partir d'AngularJS à un script PHP, le script PHP reçoit des valeurs non définies pour le formulaire publié data.
Cause :
AngularJS définit par défaut l'en-tête Content-Type pour les requêtes HTTP Post vers application/json. Cependant, l'exemple de code dans la question définit l'en-tête Content-Type sur application/x-www-form-urlencoded. Par conséquent, les données envoyées par AngularJS ne sont pas au format attendu pour la fonctionnalité $_POST de PHP.
Solution 1 :
Utiliser l'en-tête AngularJS Content-Type par défaut d'application/json et lisez l'entrée brute en PHP, puis désérialisez le JSON.
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
Solution 2 :
Si vous utilisez la fonctionnalité $_POST, formez une chaîne de requête à partir des données et envoyez-la en tant que corps de la requête, en vous assurant que la chaîne de requête est codée en URL.
data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
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!