Problembeschreibung:
Beim Ausführen einer HTTP-POST-Anfrage von AngularJS an ein PHP-Skript sendet, empfängt das PHP-Skript undefinierte Werte für das gepostete Formular Daten.
Ursache:
AngularJS setzt standardmäßig den Content-Type-Header für HTTP-Post-Anfragen an application/json. Der Beispielcode in der Frage setzt jedoch den Content-Type-Header auf application/x-www-form-urlencoded. Daher liegen die von AngularJS gesendeten Daten nicht im erwarteten Format für die $_POST-Funktionalität von PHP vor.
Lösung 1:
Verwenden Sie den standardmäßigen AngularJS Content-Type-Header von application/json und lesen Sie die Roheingabe in PHP, deserialisieren Sie dann die JSON.
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
Lösung 2:
Wenn Sie sich auf die $_POST-Funktionalität verlassen, bilden Sie eine Abfragezeichenfolge aus den Daten und senden Sie sie als Anforderungstext, um dies sicherzustellen Die Abfragezeichenfolge ist URL-codiert.
data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
Das obige ist der detaillierte Inhalt vonAngularJS zu PHP POST: Warum sind meine Variablen undefiniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!