2011-08-16 22 views
10

मैं जानना चाहता हूं कि हम jquery में AJAX स्थिति कोड कैसे प्राप्त कर सकते हैं। मैं इस ajax ब्लॉक:jquery AJAX स्थिति कोड कैसे प्राप्त करें

$.ajax{ 
    type: "GET", 
    url: "keyword_mapping.html", 
    data:"ajax=yes&sf="+status_flag, 

    success: callback.success, 
    complete: rollup_filters(), 
    failure: function(){ 
     alert("Failure"); 
    } 
    } 
अब उपरोक्त कोड में

, विफलता के मामले में, मैं कैसे ajax स्थिति कोड और उस स्थिति कोड के कुछ विवरण प्राप्त कर सकते हैं ??

+1

पर [प्रलेखन] एक नज़र (http://api.jquery.com/jQuery.ajax/)। –

उत्तर

11

आप इसे कैप्चर करने के लिए error विकल्प का उपयोग करना चाहते हैं। उदाहरण के लिए:

error: function (jqXHR, textStatus, errorThrown) 
    // Your handler here... 
} 

फिर आप jqXHR वस्तु का उपयोग विफलता बारे में जानकारी प्राप्त कर सकते हैं।

From the documentation:

XMLHttpRequest साथ पश्चगामी संगतता के लिए, एक jqXHR वस्तु निम्नलिखित गुण और तरीकों का खुलासा होगा:

  • readyState
  • स्थिति
  • statusText
  • responseXML और/या प्रतिक्रिया पाठ जब अंतर्निहित अनुरोध xml और/या पाठ क्रमश:
  • setRequestHeader (नाम, मूल्य) जो पुराने मूल्य नए के साथ (पुराने एक
  • getAllResponseHeaders()
  • getResponseHeader करने के लिए नए मूल्य की जगह के बजाय श्रृंखलाबद्ध द्वारा मानक से रवाना)
  • बीच में बंद करें()
2

error:function (xhr, options, error){ 
    alert(xhr.status); 
    alert(error); 
} 
1

में आपका विफल कॉलबैक बदलें ajax सेटिंग्स में failure जैसा कुछ नहीं है। त्रुटि से विफलता को बदलें और आपको त्रुटि कॉलबैक में 3 तर्क मिलते हैं। पहला तर्क xhr ऑब्जेक्ट है जिसमें इसकी स्थिति संपत्ति है।

$.ajax{ 
    type: "GET", 
    url: "keyword_mapping.html", 
    data:"ajax=yes&sf="+status_flag, 

    success: callback.success; 
    complete: rollup_filters(), 
    error: function(jqXHR, textStatus, errorThrown){ 
     alert(jqXHR.status); 
    } 
    } 
3

सबसे पहले, आपके पास कुछ वाक्यविन्यास त्रुटियां हैं। उपरोक्त एक विधि कॉल है, इसलिए इसे $.ajax({ ... }); (कोष्ठक के साथ) का पालन करना होगा।

दूसरा, आप ऑब्जेक्ट के हिस्से के रूप में त्रुटि संपत्ति, विफलता (see docs अधिक जानकारी के लिए) की आपूर्ति करना चाहते हैं।

तीसरा, जब आप किसी त्रुटि से जुड़ते हैं, तो आपको तीन पैरामीटर प्रदान किए जाते हैं: jqHXR, textState, errorThrow। ये तर्क आपको एक असफल AJAX कॉल का विवरण प्रदान करेंगे। (अधिक विशेष रूप से, jqXHR.status)

वैकल्पिक रूप से, आप $.ajaxError फ़ंक्शन से भी जुड़ सकते हैं।


अद्यतन इस Deferred एपीआई अधिक अप-टू-डेट, अब आपको निम्न होना चाहिए (jQuery 1.5) के रूप में रखने के लिए, जो निम्नलिखित की तरह एक त्रुटि नज़र कुछ के लिए बाध्य होगा:

$.ajax({ /* options */ }) 
    .done(function(data, textStatus, jqXHR){ 
    // here you bind to a successful execution. 
    .fail(function(jqXHR, textStatus, errorThrown){ 
    // Here you can catch if something went wrong with the AJAX call. 
    }) 
    .always(function(){ 
    // here you can execute code after both (or either) of 
    // the above callbacks have executed. 
    }); 
+0

.done() और .fail() के उपयोग के कारण उपरोक्त। –

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