Rumah > hujung hadapan web > tutorial js > Mengapa parameter POST HTTP AngularJS saya tidak ditentukan dalam PHP?

Mengapa parameter POST HTTP AngularJS saya tidak ditentukan dalam PHP?

Linda Hamilton
Lepaskan: 2024-12-02 16:28:12
asal
1005 orang telah melayarinya

Why are my AngularJS HTTP POST parameters undefined in PHP?

AngularJS HTTP Post ke PHP: Memahami Nilai "Tidak Ditakrifkan"

Ramai pengguna AngularJS menghadapi masalah semasa menghantar permintaan POST ke PHP, mengakibatkan nilai "undefined" untuk parameter POST. Artikel ini menyelami punca dan menyediakan penyelesaian untuk menyelesaikan masalah ini.

Default Pengepala Jenis Kandungan

Punca isu ini terletak pada lalai "Kandungan- Jenis" pengepala yang digunakan oleh AngularJS untuk permintaan HTTP POST. Secara lalai, AngularJS menetapkan pengepala ini kepada "application/json", yang menunjukkan bahawa badan permintaan harus disiri sebagai data JSON.

Data Diekodkan Borang lwn. JSON

Walau bagaimanapun, jika kod PHP anda menjangkakan data berkod bentuk (iaitu, data dalam format "fieldname=value&fieldname=value"), ia tidak akan dapat mengisi tatasusunan $_POST dengan betul. Untuk menyelesaikan masalah ini, anda boleh sama ada menukar skrip PHP anda untuk membaca aliran input mentah sebagai JSON atau melaraskan kod AngularJS anda untuk menghantar data yang dikodkan borang.

Penyelesaian 1: Baca Input Mentah sebagai JSON dalam PHP

Penyelesaian ini melibatkan pengubahsuaian kod PHP anda untuk membaca data input mentah sebagai JSON, menyahsirikannya dan mengekstrak POST nilai secara manual. Anda boleh melakukan ini menggunakan kod berikut:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;
Salin selepas log masuk

Penyelesaian 2: Hantar Data Dikodkan Borang daripada AngularJS

Jika anda lebih suka menggunakan fungsi $_POST dalam PHP, anda boleh membuat rentetan pertanyaan secara manual dan menghantarnya sebagai data dalam permintaan AngularJS anda. Rentetan pertanyaan hendaklah dalam format "fieldname=value&fieldname=value," dan ia hendaklah dikodkan URL. Anda boleh menggunakan encodeURIComponent() dalam JavaScript untuk memastikan pengekodan yang betul.

Atas ialah kandungan terperinci Mengapa parameter POST HTTP AngularJS saya tidak ditentukan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan