Heim >Backend-Entwicklung >PHP-Tutorial >Warum sind meine AngularJS $http.post()-Variablen in meinem PHP-Skript undefiniert?

Warum sind meine AngularJS $http.post()-Variablen in meinem PHP-Skript undefiniert?

Linda Hamilton
Linda HamiltonOriginal
2024-12-22 16:22:14584Durchsuche

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

AngularJS: Undefinierte HTTP-POST-Variablen mit PHP

Beim Senden eines AngularJS-Formulars mit $http.post() werden Variablen vom PHP empfangen Das Skript erscheint möglicherweise als undefiniert, obwohl es ein 200 OK erhält Antwort.

Ursachen

Standardmäßig legt AngularJS den Header Content-Type für HTTP-POST-Anfragen auf application/json fest. Wenn jedoch eine formularcodierte Nutzlast anstelle von JSON-Daten gesendet wird, füllt PHP das Array $_POST nicht wie erwartet.

Lösungen

Es gibt zwei Hauptlösungen:

  1. Verwenden Sie den Standard-JSON Header:

    • Behalten Sie den standardmäßigen Content-Type-Header von application/json bei.
    • Lesen Sie in PHP die Roheingabe und deserialisieren Sie die JSON-Daten mit json_decode().
  2. Formularverschlüsselt senden Daten:

    • Setzen Sie den Content-Type-Header auf application/x-www-form-urlencoded.
    • Bilden Sie manuell eine Abfragezeichenfolge wie email=example@email. com&password=secret und senden Sie es als Datennutzlast.
    • Stellen Sie sicher, dass Sie die Abfragezeichenfolge mit URL-codieren encodeURIComponent().

Beispiel modifiziertes PHP

Für die zweite Lösung:

$query_string = file_get_contents("php://input");
parse_str($query_string, $data);
$email = $data['email'];
$password = $data['password'];

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn