AngularJS HTTP Post to PHP: Undefinierte Variablen adressieren
In Ihrem AngularJS-Code tritt ein Problem auf, bei dem an ein PHP-Skript gesendete Daten undefiniert erscheinen . Um dieses Problem zu lösen, müssen wir uns mit den Details befassen.
In Ihrem AngularJS-Code haben Sie eine HTTP-POST-Anfrage mit einem Content-Type-Header von „application/x-www-form-urlencoded“ definiert. Ihre Daten sind jedoch nicht als Abfragezeichenfolge formatiert. PHP verlässt sich auf $_POST, um formcodierte Daten zu empfangen, was erfordert, dass die Daten als Schlüssel-Wert-Paare formatiert werden.
Um dieses Problem zu beheben, gibt es zwei Optionen:
Option 1: JSON verwenden
AngularJS verwendet standardmäßig den Content-Type-Header „application/json“ für HTTP-Anfragen. Sie können dies nutzen, indem Sie die Roheingabe in PHP lesen und den JSON deserialisieren. Dies kann mit dem folgenden PHP-Code erfolgen:
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
Option 2: Abfragezeichenfolge manuell formatieren
Wenn Sie $_POST bevorzugen, können Sie Ihre manuell formatieren Daten als Abfragezeichenfolge. Stellen Sie sicher, dass es URL-codiert ist. In JavaScript können Sie dies erreichen, indem Sie Folgendes tun:
let data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
Stellen Sie die HTTP-Anforderungsdaten auf diese formatierte Abfragezeichenfolge anstelle des aktuellen Formats ein. Mit diesen Anpassungen sendet Ihre AngularJS-HTTP-POST-Anfrage korrekt Daten an Ihr PHP-Skript und löst so das Problem undefinierter Variablen.
Das obige ist der detaillierte Inhalt vonWarum sind meine AngularJS-HTTP-POST-Variablen in meinem PHP-Skript undefiniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!