Mengapa Permintaan Ajax jQuery Saya Kembali 200 OK Tetapi Mencetuskan Peristiwa Ralat?

Linda Hamilton
Lepaskan: 2024-11-27 18:11:13
asal
751 orang telah melayarinya

Why Does My jQuery Ajax Request Return 200 OK But Trigger the Error Event?

Permintaan jQuery Ajax Mengembalikan Kejayaan (200 OK) tetapi Mencetuskan Peristiwa Ralat

Permintaan jQuery Ajax anda sentiasa mengembalikan 200 OK, menunjukkan kejayaan tindak balas. Walau bagaimanapun, jQuery masih melaksanakan acara ralat dan bukannya acara kejayaan.

Isu:

Apabila menggunakan $.ajax jQuery, jika parameter dataType ditetapkan kepada "json" (seperti dalam kod anda), ia menjangkakan respons daripada pelayan adalah JSON yang sah. Walau bagaimanapun, dalam kes anda, respons pelayan ialah HTML, yang bukan JSON yang sah. Ini menyebabkan jQuery membuang ralat penghuraian dan mencetuskan peristiwa ralat.

Penyelesaian 1: Alih keluar dataType: 'json'

Satu penyelesaian ialah mengalih keluar parameter dataType daripada permintaan Ajax anda. Ini akan membolehkan jQuery mentafsir respons sebagai teks biasa, yang akan termasuk HTML yang anda hantar daripada pelayan anda.

$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: json,
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed
});
Salin selepas log masuk

Penyelesaian 2: Kembalikan JSON daripada Pelayan

Sebagai alternatif, anda boleh mengubah suai kod C# sebelah pelayan anda untuk mengembalikan JSON dan bukannya HTML. Ini akan memastikan bahawa jQuery boleh menghuraikan respons dengan betul dan melaksanakan peristiwa kejayaan.

private void test() {
    Response.ContentType = "application/json";
    Response.Write("{ \"message\": \"Record Deleted\" }");
}
Salin selepas log masuk

Dengan pengubahsuaian ini, jQuery akan menerima respons JSON yang sah dan mencetuskan peristiwa kejayaan seperti yang dijangkakan.

Atas ialah kandungan terperinci Mengapa Permintaan Ajax jQuery Saya Kembali 200 OK Tetapi Mencetuskan Peristiwa Ralat?. 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