jQuery के AJAX .fail()
एक अच्छा त्रुटि हैंडलर कि संभालती है "404 नहीं मिला" त्रुटियों और इस तरह है, लेकिन हम कैसे सामान्य त्रुटि मामलों को संभालने के लिए .done()
अंदर से जानबूझ कर यह कॉल कर सकते हैं, उदाहरण के लिए जब डेटा उपयोगकर्ता द्वारा प्रदान की सही नहीं है?सामान्य त्रुटियों को संभालने के लिए .done() से .fail() को कैसे कॉल करें?
8
A
उत्तर
10
आप एक सामान्य फ़ंक्शन का उपयोग कर सकते हैं जिसे प्रत्येक मामले में त्रुटि पर बुलाया जाता है।
$.ajax('url')
.done(function(data, textStatus, jqXHR) {
if(data == 'Invalid') {
ajaxError(jqXHR, "usererror");
}
})
.fail(ajaxError);
function ajaxError(jqXHR, textStatus, errorThrown) {
console.log('Ajax error: ' + textStatus);
}
3
@ Juhana के कोड सबसे हालात के लिए अच्छा होगा।
अगर, हालांकि, त्रुटियों कि पैदा हो सकता है मज़बूती से data
के निरीक्षण ने भविष्यवाणी नहीं की जा सकती अकेला है, तो इस संस्करण पर विचार करें:
$.ajax('url').done(function(data, textStatus, jqXHR) {
try {
var dataLooksGood = ......;//(boolean) Test data for predictable data errors here
if(!dataLooksGood) throw(new Error("data invalid");)
//Handle data here.
//Any naturally-ocurring errors or further manually-thrown errors will be caught below.
}
catch(err) {
ajaxError(jqXHR, "AJAX successful but: " + err.message);
}
}).fail(ajaxError).always(function() {
//Here do whatever is necessary after success or error
});
function ajaxError(jqXHR, textStatus, errorThrown) {
console.log('AJAX error: ' + textStatus);
}
त्रुटियों को पकड़ने के द्वारा, always
हैंडलर यहां तक कि एक unpredicted अगर आग की अनुमति दी जाएगी त्रुटि अवसर। इस प्रकार आप बेहतर गारंटी दे सकते हैं कि एक त्रुटि होने पर ध्यान दिए बिना "लोडिंग ..." संदेश या स्पिनर ग्राफिक मारा गया था।
संबंधित मुद्दे
- 1. कैसे अजवाइन के Task.map में त्रुटियों को संभालने के लिए
- 2. जावा मल्टीथ्रेडिंग त्रुटियों को संभालने
- 3. नेस्टेड jquery स्थगित कॉल को संभालने के लिए कैसे करें
- 4. कैसे पीडीओ अपवाद को संभालने के लिए
- 5. जंग में अवरुद्ध I/o को संभालने के लिए कैसे करें, या सामान्य
- 6. PHP परियोजनाओं में त्रुटियों को संभालने के लिए पैटर्न हैं?
- 7. file_get_contents त्रुटियों को संभालने के लिए अच्छा तरीका
- 8. सबरूटीन को संभालने के लिए कैसे पर्ल
- 9. jquery AJAX पर कॉल करें - .fail बनाम: त्रुटि
- 10. कोडडॉम - एक सामान्य विधि को कॉल करें
- 11. खोज को संभालने के लिए सर्वोत्तम अभ्यास
- 12. आप AJAX कॉल से त्रुटियों को कैसे संभालते हैं?
- 13. jQuery ajax() सफलता, त्रुटि और पूरा .done बनाम(), .fail() और हमेशा का उपयोग कर()
- 14. कैसे राज्यों को संभालने के लिए?
- 15. जावास्क्रिप्ट संपादकों में sanitizing को संभालने के लिए कैसे करें
- 16. संख्याओं के अनुक्रम को सामान्य कैसे करें?
- 17. jQuery तो फिर() स्थगित .fail()
- 18. NSFetchedResultsController त्रुटियों को कैसे प्रबंधित करें?
- 19. ऑक्लुजन और फ्रैगमेंटेशन को संभालने के लिए कैसे करें
- 20. Protobuf.net: विरासत को संभालने के लिए कैसे करें [ProtoInclude]
- 21. आवश्यक डिफ़ॉल्ट कन्स्ट्रक्टर को संभालने के लिए कैसे करें
- 22. सीसीआर: कारणों का उपयोग करके त्रुटियों को संभालने के लिए सर्वोत्तम अभ्यास
- 23. कैसे सबसे अच्छा Future.filter विधेय को संभालने के लिए संतुष्ट प्रकार त्रुटियों
- 24. एसवीजी पिक्सेल स्नैपिंग को संभालने के लिए कैसे करें
- 25. urllib.request.urlopen से प्रतिक्रिया एन्कोडिंग को संभालने के लिए कैसे()
- 26. PHP में त्रुटियों को संभालने के लिए इस दृष्टिकोण के साथ कोई "गॉथचास" है?
- 27. चेतावनियों को संभालने के लिए सर्वोत्तम अभ्यास
- 28. मेकफ़ाइल को मेकफ़ाइल से कैसे कॉल करें?
- 29. PHP डेटटाइम अपवाद और त्रुटियों को संभालने में
- 30. अपवादों को संभालने के लिए नमूना कोड
एक बार '.done() 'निष्पादित हो गया है और आप उस कॉलबैक में हैं, क्या एक ही वादे ऑब्जेक्ट पर' .fail()' करने का निर्णय लेने में बहुत देर हो चुकी है? आपको अधिक पारंपरिक जावास्क्रिप्ट त्रुटि हैंडलिंग जैसे अपवाद या त्रुटि जांच या ऑब्जेक्ट पर अपनी त्रुटि कॉलबैक डालना चाहिए। – jfriend00