Menghantar Data JSON ke PHP Menggunakan Ajax
Masalah:
Apabila cuba menghantar data JSON ke PHP fail melalui Ajax, data tidak diterima dan tatasusunan $_POST mengandungi nilai kosong.
Penyelesaian:
Untuk menyelesaikan isu ini, parameter contentType dalam Permintaan Ajax harus dialih keluar. Pilihan contentType digunakan apabila menghantar data mentah ke pelayan, tetapi dalam kes ini, data sudah dalam format JSON yang sah. Dengan mengalih keluarnya, pelayan akan mengendalikan data JSON secara automatik dengan betul.
Selain itu, fungsi JSON.stringify dan json_decode tidak diperlukan dalam konteks ini. Sebaliknya, objek postData boleh digunakan sebagai muatan permintaan secara langsung.
Kod Ajax yang dikemas kini:
$.ajax({ type: "POST", dataType: "json", url: "add_cart.php", data: {myData: postData}, success: function(data){ alert('Items added'); }, error: function(e){ console.log(e.message); } });
Kod PHP yang dikemas kini:
if(isset($_POST['myData'])){ $obj = $_POST['myData']; // Some PHP operation }
Atas ialah kandungan terperinci Mengapa data JSON saya tidak diterima oleh PHP melalui Ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!