Rumah >hujung hadapan web >tutorial js >Mengapa pembolehubah AngularJS HTTP POST saya tidak ditentukan dalam skrip PHP saya?
AngularJS HTTP Post to PHP: Menangani Pembolehubah Tidak Ditakrifkan
Kod AngularJS anda mengalami isu di mana data yang disiarkan ke skrip PHP kelihatan tidak ditentukan . Untuk menyelesaikan masalah ini, kami perlu menyelidiki butirannya.
Dalam kod AngularJS anda, anda telah menentukan permintaan HTTP POST dengan pengepala Jenis Kandungan "application/x-www-form-urlencoded". Walau bagaimanapun, data anda tidak diformatkan sebagai rentetan pertanyaan. PHP bergantung pada $_POST untuk menerima data berkod bentuk, yang memerlukan data diformatkan sebagai pasangan nilai kunci.
Untuk menyelesaikan isu ini, terdapat dua pilihan:
Pilihan 1: Gunakan JSON
AngularJS lalai untuk menggunakan pengepala Jenis Kandungan "application/json" untuk Permintaan HTTP. Anda boleh memanfaatkan ini dengan membaca input mentah dalam PHP dan menyahsiri JSON. Ini boleh dilakukan menggunakan kod PHP berikut:
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
Pilihan 2: Format Rentetan Pertanyaan Secara Manual
Jika anda lebih suka menggunakan $_POST, anda boleh memformatkan secara manual anda data sebagai rentetan pertanyaan. Pastikan ia dikodkan URL. Dalam JavaScript, anda boleh mencapai ini menggunakan:
let data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
Tetapkan data permintaan HTTP kepada rentetan pertanyaan berformat ini dan bukannya format semasa. Dengan pelarasan ini, permintaan AngularJS HTTP POST anda akan menghantar data dengan betul ke skrip PHP anda, menyelesaikan isu pembolehubah tidak ditentukan.
Atas ialah kandungan terperinci Mengapa pembolehubah AngularJS HTTP POST saya tidak ditentukan dalam skrip PHP saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!