Perihalan Masalah:
Apabila melaksanakan permintaan HTTP POST daripada AngularJS kepada skrip PHP, skrip PHP menerima nilai yang tidak ditentukan untuk borang yang disiarkan data.
Punca:
AngularJS lalai pengepala Jenis Kandungan untuk permintaan HTTP Post kepada aplikasi/json. Walau bagaimanapun, kod sampel dalam soalan menetapkan pengepala Jenis Kandungan kepada application/x-www-form-urlencoded. Akibatnya, data yang dihantar oleh AngularJS tidak berada dalam format yang dijangkakan untuk kefungsian $_POST PHP.
Penyelesaian 1:
Gunakan pengepala Jenis Kandungan AngularJS lalai of application/json dan baca input mentah dalam PHP, kemudian deserialize the JSON.
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
Penyelesaian 2:
Jika bergantung pada fungsi $_POST, bentuk rentetan pertanyaan daripada data dan hantarkannya sebagai badan permintaan, pastikan bahawa rentetan pertanyaan dikodkan URL.
data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
Atas ialah kandungan terperinci AngularJS ke PHP POST: Mengapa pembolehubah saya tidak ditentukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!