Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa menyatakan `contentType: \"application/json; charset=utf-8\"` tidak diperlukan apabila menghantar data JSON ke PHP menggunakan Ajax?

Mengapa menyatakan `contentType: \"application/json; charset=utf-8\"` tidak diperlukan apabila menghantar data JSON ke PHP menggunakan Ajax?

DDD
DDDasal
2024-11-02 02:40:30298semak imbas

Why is specifying `contentType:

Menghantar Data JSON ke PHP Menggunakan Ajax

Dalam usaha untuk memindahkan data berformat JSON ke PHP untuk diproses, pembangun mungkin menghadapi halangan. Satu cabaran sedemikian melibatkan penghantaran data JSON melalui Ajax ke skrip PHP.

Menyelesaikan Masalah Gagal Penghantaran JSON Ajax

Untuk menyelesaikan isu ini, semak coretan kod berikut:

<code class="javascript">$.ajax({
  type: "POST",
  dataType: "json",
  url: "add_cart.php",
  data: {myData: dataString},
  // Remove this line:
  contentType: "application/json; charset=utf-8",
  success: function(data) {
    alert('Items added');
  },
  error: function(e) {
    console.log(e.message);
  }
});</code>

Pengalihan keluar baris contentType: "application/json; charset=utf-8" adalah penting. Apabila menghantar data JSON ke PHP menggunakan Ajax, adalah tidak perlu untuk menentukan jenis kandungan sebagai JSON. Sebaliknya, PHP akan menghuraikan data yang dihantar secara automatik sebagai rentetan JSON.

Pendekatan Ringkas

Untuk memudahkan lagi proses, hapuskan penggunaan JSON.stringify dan json_decode. Hanya hantar objek data terus ke permintaan Ajax:

<code class="javascript">data: {myData: postData},</code>

Dalam PHP, akses data JSON melalui $obj = $_POST['myData'];.

Atas ialah kandungan terperinci Mengapa menyatakan `contentType: \"application/json; charset=utf-8\"` tidak diperlukan apabila menghantar data JSON ke PHP menggunakan Ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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