Rumah >hujung hadapan web >tutorial js >Mengapa Pembolehubah POST AngularJS Saya Tidak Ditakrifkan dalam Skrip PHP Saya?
HTTP POST Dihantar daripada AngularJS Menghasilkan Pembolehubah POST Tidak Ditakrifkan dalam PHP
Dalam persediaan kami, aplikasi AngularJS menghantar permintaan HTTP POST kepada PHP skrip, tetapi skrip PHP menerima nilai yang tidak ditentukan untuk POST 'e-mel' dan 'kata laluan' parameter.
Menyahpepijat Punca
Isunya terletak pada ketidakpadanan antara pengepala Jenis Kandungan yang dihantar oleh AngularJS dan format data yang dijangkakan oleh PHP. AngularJS menggunakan aplikasi/json sebagai pengepala Jenis Kandungan lalai, tetapi skrip PHP menjangkakan data yang dikodkan bentuk.
Penyelesaian 1: Gunakan Aplikasi/JSON dalam PHP
Satu penyelesaian ialah menukar tajuk Jenis Kandungan dalam AngularJS kepada aplikasi/json dan gunakan PHP file_get_contents("php://input") untuk mendapatkan semula badan permintaan mentah. Data kemudiannya boleh dinyahsiri daripada JSON.
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
Penyelesaian 2: Hantar Data Dikodkan Borang
Sebagai alternatif, AngularJS boleh dikonfigurasikan untuk menghantar data berkod borang . Ini melibatkan membina rentetan pertanyaan secara manual atau menggunakan jQuery.serialize(). Rentetan pertanyaan kemudiannya hendaklah dikodkan URL dan ditetapkan sebagai data permintaan.
$email = $_POST['email']; $pass = $_POST['password'];
Kaedah Dihentikan
Perhatikan bahawa kaedah .success() dan .error() yang disebut dalam kod tidak digunakan lagi. Gunakan .then() sebaliknya.
Atas ialah kandungan terperinci Mengapa Pembolehubah POST AngularJS Saya Tidak Ditakrifkan dalam Skrip PHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!