2009-04-15 15 views
40

में त्रुटि को कैसे पकड़ें मैं उपयोगकर्ता द्वारा बटन पर क्लिक करते समय कुछ डेटा पुनर्प्राप्त करने के लिए jQuery की .load() विधि का उपयोग कर रहा हूं।jQuery के लोड() विधि

लोड सफलतापूर्वक समाप्त होने के बाद, मैं परिणाम <div> में दिखाता हूं।

समस्या यह है कि कभी-कभी डेटा पुनर्प्राप्त करते समय load() में कोई त्रुटि होती है।

मैं load() में कोई त्रुटि कैसे प्राप्त कर सकता हूं?

उत्तर

5

लोड() कॉलबैक प्रदान करता है।

कॉलबैक।
फ़ंक्शन जिसे अजाक्स अनुरोध पूरा किया जाता है (आवश्यक रूप से सफलता नहीं)।

इस तरह आईआईआरसी किया गया। (यह परीक्षण नहीं किया)

$("#feeds").load("feeds.php", {limit: 25}, 
    function (responseText, textStatus, XMLHttpRequest) { 
     // XMLHttpRequest.responseText has the error info you want. 
     alert(XMLHttpRequest.responseText); 
}); 
+7

फ़ंक्शन का पहला तर्क IS प्रतिसाद टेक्स्ट है। XMLHttpRequest.responseText का उपयोग करने की कोई आवश्यकता नहीं है ... –

10

लोड() कार्य करने के लिए एक कॉलबैक गुजर इसके अलावा ओलाफुर Waage पता चलता है के रूप में, आप भी पृष्ठ पर सभी ajax कॉल के लिए वैश्विक में के रूप में रजिस्टर कर सकते हैं "वैश्विक" त्रुटि संचालकों (वैश्विक)।

वहाँ वैश्विक अजाक्स त्रुटि संचालकों रजिस्टर करने के लिए कम से कम दो तरीके हैं:

ajaxError() साथ

रजिस्टर सिर्फ त्रुटि हैंडलर:

$.ajaxError(function(event, request, settings) { 
     alert("Oops!!"); 
}); 

या, ajaxSetup() का उपयोग एक त्रुटि हैंडलर और अन्य संपत्तियों पर स्थापित करने के लिए एक ही समय:

$.ajaxSetup({ 
    timeout: 5000, 
    error: function(event, request, settings){ 
     alert("Oops!"); 
    } 
}); 
66

load() documentation.

बस कैसे एक लोड त्रुटि होता है पर एक छोटे से पृष्ठभूमि ...

$("body").load("/someotherpath/feedsx.pxhp", {limit: 25}, 
    function (responseText, textStatus, req) { 
     if (textStatus == "error") { 
      return "oh noes!!!!"; 
     } 
}); 

संपादित करें: एक पथ रूट पथ के अलावा अन्य के रूप में टिप्पणी से अनुरोध किया गया है।

+0

धन्यवाद altCongnito.it काम है! बीटीडब्ल्यू, क्या मैं एक और संबंधित प्रश्न पूछ सकता हूं? एक और समस्या फ़ाइल पथ है! मैं एएसपीनेट का उपयोग करता हूं। मैं मास्टर पेज में लोड() कोड लिखता हूं। पैरामीटर यूआरएल feedsx.aspx की तरह है। यह तब काम करता है जब सामग्री पृष्ठ रूट फ़ोल्डर के अंतर्गत होते हैं। लेकिन यदि सामग्री पृष्ठ अन्य उपफोल्डर के अंतर्गत हैं तो काम नहीं करते हैं। jquery दस्तावेज़ों के लिंक के लिए –

+0

धन्यवाद। मुझे नहीं पता था कि वे भी अस्तित्व में थे! –

+0

धन्यवाद - लक्षित पृष्ठ लोड करते समय लोड विफलताओं ज्यादातर समस्या के कारण होते हैं। – Resh32

0

इलेक्ट्रिक टूलबॉक्स में "Loading content with jQuery AJAX and dealing with failures" नामक एक लेख है जो आपके प्रश्न का उत्तर देने के लिए प्रतीत होता है।

स्पष्ट रूप से आपके द्वारा निर्दिष्ट कॉलबैक फ़ंक्शन प्रतिक्रिया, स्थिति और XmlHttpRequest ऑब्जेक्ट को पारित कर देता है, जिससे आप अपने AJAX अनुरोध की स्थिति निर्धारित कर सकते हैं और तदनुसार स्थिति को संभाल सकते हैं।

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