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 });
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\" }"); }
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!