2010-08-31 14 views
6

मैं सफलता कॉलबैक में AJAX त्रुटि को ट्रिगर करने का एक तरीका ढूंढ रहा हूं। मैं नीचे मेरी समस्या कोड की व्याख्या करने की कोशिश की है:सफलता कॉलबैक पर मैं AJAX त्रुटि कॉलबैक कैसे ट्रिगर कर सकता हूं?

$.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' 
}); 

उत्तर

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

अच्छा, सरल, और बिंदु पर। :) – Joshua

+0

सुनिश्चित करें कि आप ऐसा करते हैं हालांकि: 'errorhandler.apply (यह, तर्क); 'यह सुनिश्चित करने के लिए कि दायरा और तर्क अभी भी हैं (वे समान नहीं होंगे, लेकिन वे पर्याप्त अच्छे होंगे)। – balupton

+0

@balupton: सामान्य रूप से, मैं सहमत हूं। लेकिन इस विशेष मामले में कोई फर्क नहीं पड़ता। त्रुटि हैंडलर के भीतर 'this' तक पहुंचने की आवश्यकता नहीं है। – jAndy

0

तुम इतनी त्रुटि कॉलबैक स्वचालित रूप से शुरू हो रहा है एक उचित HTTP स्थिति कोड भेज सकते हैं।

4xx त्रुटि सीमा जो क्लाइंट त्रुटियों से संबंधित है वह एक अच्छा फिट हो सकती है। अधिकांश एपीआई आपके द्वारा किए जा रहे अतिरिक्त JSON/XML डेटा के साथ त्रुटि इंगित करने के लिए HTTP स्थितियों का उपयोग करते हैं। उदाहरण के लिए Twitter's response codes देखें।

+0

मैं सर्वर-साइड पर्यावरण को स्पर्श नहीं कर सकता और मैं क्लाइंट-साइड की तलाश में हूं और मैं सफलता के मामले में कॉल करने का एक तरीका ढूंढ रहा हूं। –

संबंधित मुद्दे