Saya mengirim respons kesalahan ke jQuery saya. Namun, saya tidak bisa mendapatkan teks respons (dalam contoh di bawah ini akan Hilang ke pantai )
Satu-satunya hal yang dikatakan jQuery adalah 'kesalahan'.
Lihat contoh ini untuk detail:
php
<?
header('HTTP/1.1 500 Internal Server Error');
print "Gone to the beach"
?>
jQuery
$.ajax({
type: "post",
data: {id: 0},
cache: false,
url: "doIt.php",
dataType: "text",
error: function (request, error) {
console.log(arguments);
alert(" Can't do because: " + error);
},
success: function () {
alert(" Done ! ");
}
});
Sekarang hasil saya adalah:
catatan:
[XMLHttpRequest readyState=4 status=500, "error", undefined]
waspada:
Tidak dapat melakukannya karena: kesalahan
Ada ide?
php
javascript
jquery
ajax
error-handling
jimon
sumber
sumber
header
fungsinya menangani ini?$.ajax()
panggilan fungsi kesalahan diteruskan ke sana.Jawaban:
Mencoba:
sumber
eval
is EVIL ... stackoverflow.com/questions/646597/…eval
sini tidak masuk akal. Jika Anda ingin mem-parsing respons JSON, gunakanJSON.parse
. Dalam kasus OP, responsnya bahkan bukan JSON atau JavaScript, jadi Andaeval
hanya akan menyebabkan SyntaxError.xhr
tidak terdefinisiBagi saya, ini hanya bekerja:
sumber
Lihatlah
responseText
properti dari parameter permintaan.sumber
Seperti yang akhirnya disarankan oleh jawaban lain ini dan komentar di halaman ini:
sumber
Inilah yang bekerja untuk saya
sumber
Ini akan memungkinkan Anda untuk melihat seluruh respons, bukan hanya nilai "responseText"
sumber
Anda dapat mencobanya juga:
sumber
Jika Anda ingin mendapatkan Kesalahan Sintaks dengan nomor baris, gunakan ini
sumber
Pendekatan sederhana terbaik:
sumber
Saya menggunakan ini, dan itu bekerja dengan sempurna.
sumber
Jika Anda tidak memiliki kesalahan jaringan, dan ingin memunculkan kesalahan dari backend, untuk hak istimewa yang tidak mencukupi, server respons Anda dengan 200 dan pesan kesalahan. Kemudian di handler sukses Anda periksa data.status == 'kesalahan'
sumber
fail
metode alih-alihdone
metode. Semua permintaan mengembalikan objek yang berisi objek 'status' dengan kode dan pesan.