Elbette yoldan çıkmış olabilirim, ancak JQuery prefilter işlevselliğini kullanıp kullanamayacağınızı ve yanıt verilerinin bir Ajax Başarı ile analiz edilip edilmediğini merak ediyorum. ajax
benim error
olay işleyicisine koşullu olarak döndüğümde, döndüğüm JSON (hata iletileri) içindeki bazı öğelerin varlığına dayalı çağrıları çağırır.JQuery AJAX Ön Filtresini Kullanarak Yanıt Verilerini Kontrol Etme ve Koşullu Olarak İleriye 'Hata Durumu Olay İşleyicisine İletme
Bu, eğer sayfada global olarak herhangi bir ajax işlevi için ayarlanmışsa güzel olurdu. Belki bu, bunun için en iyi yol değildir; herhangi bir alternatif fikri varsa, lütfen bana bildirin!
ön filtresi:
//only run prefilter on ajax calls expecting JSON back in response, would this
//be the right way to do this?
$.ajaxPrefilter("json", function(options, originalOptions, jqXHR) {
jqXHR.success(function(data, textStatus, jXHR) {
if(hasErrors(data)) {
//forward to error event handler?
}
});
});
Ajax çağrı:
$.ajax({
type: "POST",
data: {
theData: "someData"
},
url: theUrl,
dataType: 'json',
cache: false,
success: function (data, textStatus, jqXHR) {
//do stuff on success
}
error: function (jqXHR, textStatus, errorThrown) {
//I want to do this stuff if data contains errors from server
}
});
Çok teşekkür ederim!
Her başarılı geri dönüşten sonra özel işleyici kullanıyordum. Şimdi jQuery API'sinde $ .ajaxPrefilter'i gördüm ve cevabınızı gördüm. Bana zaman kazandırdın. Teşekkürler. – jsonx
Bu mükemmel! Çok teşekkür ederim! – icats
Tüm ".done" geri aramalarını nasıl durdurursunuz ve 2. "hasErrors (data)" koşulunda '.fail' geri aramalarını çalıştırırsınız? JqXHR.reject() 'yi denedim ama bitti' jqXHR.reject bir fonksiyon değil '. Şartlı bölümde tam olarak ne yazıyorsunuz? – kenn