Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah nilai Angular HTTP POST saya tidak ditentukan dalam PHP, dan bagaimanakah saya boleh membetulkannya?

Mengapakah nilai Angular HTTP POST saya tidak ditentukan dalam PHP, dan bagaimanakah saya boleh membetulkannya?

Barbara Streisand
Lepaskan: 2024-12-15 15:33:15
asal
391 orang telah melayarinya

Why are my Angular HTTP POST values undefined in PHP, and how can I fix it?

Angular HTTP POST ke PHP: Menangani Nilai POST Tidak Ditakrifkan

Dalam AngularJS, melaksanakan permintaan HTTP POST ke titik akhir PHP kadangkala boleh mengakibatkan tidak ditentukan Nilai POST pada bahagian pelayan. Ini boleh berlaku apabila terdapat ketidakpadanan antara format data yang dijangkakan dan data sebenar yang dihantar oleh aplikasi Sudut.

Untuk menyelesaikan isu ini, adalah penting untuk memastikan bahawa pengepala Jenis Kandungan ditetapkan dengan sewajarnya. Secara lalai, AngularJS menetapkan pengepala ini kepada "aplikasi/json". Walau bagaimanapun, jika anda menghantar data yang dikodkan borang, ini perlu ditindih.

Dalam kod yang disediakan, baris berikut menetapkan pengepala Jenis Kandungan kepada "application/x-www-form-urlencoded; charset=UTF-8":

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
Salin selepas log masuk

Walau bagaimanapun, ini memerlukan pengubahsuaian data yang dihantar agar sepadan dengan format yang dikodkan borang. Daripada menghantar data sebagai objek, ia perlu ditukar kepada rentetan pertanyaan. Ini boleh dilakukan dengan menggunakan jQuery.serialize() atau membina rentetan pertanyaan secara manual dengan encodeURIComponent().

Sebagai alternatif, jika anda lebih suka menggunakan fungsi $_POST PHP, anda boleh mengekalkan tetapan pengepala lalai dan mengubah suai Kod PHP untuk membaca input mentah daripada badan permintaan dan menyahkod JSON. Ini boleh dicapai dengan kod berikut:

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

Dengan menjajarkan format data dan tetapan pengepala, anda boleh memastikan bahawa nilai POST diterima dengan betul di sebelah PHP.

Atas ialah kandungan terperinci Mengapakah nilai Angular HTTP POST saya tidak ditentukan dalam PHP, dan bagaimanakah saya boleh membetulkannya?. 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