2010-08-31 23 views
6

Başarı geri dönüşünde ajax hatasını tetiklemenin bir yolunu arıyorum. Ben aşağıda benim sorunum kodunu açıklamaya çalıştık: Hata geri arama otomatik olarak tetiklenir böyleceBaşarı geri dönüşünde ajax hatası geri bildirimini nasıl tetikleyebilirim?

$.ajax({ 
url: requestURL, 
data: postData, 
type: 'post', 
success: function(response){ 
    if(response.Success){ 
     // do something 
    }else{ 
     // request workflow fails in this case, 
     // i have to trigger this ajax request's error callback 
    } 
}, 
error: function(){ 
    // do something on error case 
}, 
dataType: 'json' 
}); 

cevap

10
var errorhandler = function(xhr, textStatus, error){ 
    // do something on error case 
}; 

$.ajax({ 
    url: requestURL, 
    data: postData, 
    type: 'post', 
    success: function(response){ 
     if(response.Success){ 
      // do something 
     }else{ 
      errorhandler(); 
     } 
    }, 
    error: errorhandler, 
    dataType: 'json' 
    }); 
+1

Güzel, basit ve konuya. :) – Joshua

+0

Bunu yaptığınızdan emin olun: 'errorhandler.apply (bu, argümanlar);' kapsam ve argümanların hala orada olduğundan emin olmak için (aynı olmayacaklar, ama yeterince iyi olacaklardır). – balupton

+0

@balupton: Genel olarak katılıyorum. Ancak bu özel durumda kapsam önemli değil. Hata işleyicisine 'bu' erişmeye gerek yoktur. – jAndy

0

Uygun bir HTTP durum kodu gönderebilir.

İstemci hatalarıyla ilgili 4xx hata aralıkları uygun olabilir. Çoğu API, yaptığınız gibi ek JSON/XML verileriyle birlikte hatayı belirtmek için HTTP durumlarını kullanır. Örnek için bkz Twitter's response codes.

+0

Sunucu tarafı ortamına dokunamıyorum ve istemci tarafı arıyorum ve başarı durumu içinde arama yapmanın bir yolunu arıyorum. –

İlgili konular