Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Panggilan Ajax jQuery Saya Mencetuskan Peristiwa Ralat Walaupun 200 Jawapan OK?

Mengapa Panggilan Ajax jQuery Saya Mencetuskan Peristiwa Ralat Walaupun 200 Jawapan OK?

Barbara Streisand
Barbara Streisandasal
2024-11-23 04:08:30693semak imbas

Why Does My jQuery Ajax Call Trigger an Error Event Despite a 200 OK Response?

Mengendalikan 200 Respons dengan Peristiwa Ralat jQuery

Apabila mengeluarkan permintaan Ajax, adalah perkara biasa untuk menghadapi situasi di mana pelayan mengembalikan status 200 OK kod, menunjukkan permintaan yang berjaya, tetapi peristiwa ralat jQuery dicetuskan. Ini boleh menjadi sangat membingungkan, kerana permintaan itu nampaknya telah berjaya diselesaikan.

Untuk memahami tingkah laku ini, adalah penting untuk mengenali bahawa jQuery cuba mentafsir badan tindak balas berdasarkan parameter DataType yang ditentukan atau Content-Type pengepala dihantar oleh pelayan. Walau bagaimanapun, jika penukaran ini gagal (cth., disebabkan JSON atau XML yang tidak sah), jQuery melancarkan panggilan balik ralat.

Pertimbangkan kod jQuery yang disediakan:

dataType: "json"

Dengan tetapan ini, jQuery menjangka respons JSON yang sah daripada pelayan. Walau bagaimanapun, kod C# pada bahagian pelayan mengembalikan coretan HTML, yang bukan JSON. Ini menyebabkan jQuery gagal dalam penukaran, menyebabkan ralat panggil balik dipanggil.

Untuk menangani isu ini, anda boleh sama ada:

  • Alih keluar parameter jenis data: Ini akan menghalang jQuery daripada mencuba penukaran automatik, membolehkan anda mengendalikan kejayaan atau kegagalan berdasarkan kod status sahaja.
  • Konfigurasikan kod sisi pelayan untuk mengembalikan JSON yang sah: Ini melibatkan mengubah suai pengepala Jenis Kandungan kepada aplikasi/javascript atau aplikasi/json, bergantung pada keperluan anda dan mengembalikan respons JSON yang dibentuk dengan baik.

Sebagai alternatif, anda boleh mempertimbangkan untuk memaparkan mesej kejayaan dalam panggilan balik kejayaan dan bukannya bergantung pada kod sebelah pelayan untuk memberikan makluman:

success: function (result) {
  alert("Record Deleted");
}

Dengan melaksanakan penyelesaian ini, anda boleh memastikan permintaan Ajax anda mengendalikan 200 respons OK dengan betul dan menyediakan gelagat yang diharapkan.

Atas ialah kandungan terperinci Mengapa Panggilan Ajax jQuery Saya Mencetuskan Peristiwa Ralat Walaupun 200 Jawapan OK?. 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