Bir Ajax error
işlevinde gerekli parametreler şunlardır jqXHR, exception
ve aşağıdaki gibi kullanabilirsiniz:
$.ajax({
url: 'some_unknown_page.html',
success: function (response) {
$('#post').html(response.responseText);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
},
});
DEMO FIDDLE
Parametreler
jqXHR:
Aslında şuna benzeyen bir hata nesnesi
Bunu, aşağıdaki gibi işlevin console.log
içinde kullanarak kendi tarayıcı konsolunuzda da görüntüleyebilirsiniz error
:
error: function (jqXHR, exception) {
console.log(jqXHR);
// Your error handling logic here..
}
status
Hata kodunu almak için bu nesnenin özelliğini kullanıyoruz , örneğin status = 404 alırsak bu istenen sayfanın bulunamadığı anlamına gelir. Hiç yok. Bu durum koduna bağlı olarak, kullanıcıları giriş sayfasına veya iş mantığımızın gerektirdiği her şeye yönlendirebiliriz.
istisna:
Bu, istisna türünü gösteren dize değişkenidir. Dolayısıyla, 404 hatası alıyorsak, exception
metin basitçe 'hata' olacaktır. Benzer şekilde, diğer istisna metinleri olarak 'zaman aşımı', 'iptal' alabiliriz.
Eskime Uyarı:jqXHR.success()
, jqXHR.error()
ve jqXHR.complete()
geri çağrıları jQuery 1.8 olarak önerilmemektedir. Onların nihai kaldırılması için kodunuzu hazırlamak için, kullanmak jqXHR.done()
, jqXHR.fail()
ve jqXHR.always()
bunun yerine.
Bu nedenle, jQuery 1.8 veya üstünü kullanıyorsanız , aşağıdaki gibi başarı ve hata işlevi mantığını güncellememiz gerekecektir: -
// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax("some_unknown_page.html")
.done(function (response) {
// success logic here
$('#post').html(response.responseText);
})
.fail(function (jqXHR, exception) {
// Our error logic here
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
})
.always(function () {
alert("complete");
});
Umarım yardımcı olur!
dataType
değildatatype
.