Rumah > hujung hadapan web > tutorial js > 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
Lepaskan: 2024-11-23 04:08:30
asal
746 orang telah melayarinya

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"
Salin selepas log masuk

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");
}
Salin selepas log masuk

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!

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