ऐसा लगता है कि सफलता, त्रुटि, और पूर्ण कॉलबैक केवल आग लगती है जब AJAX अनुरोध सर्वर से कुछ प्रतिक्रिया प्राप्त करने में सक्षम होता है।एक jQuery AJAX अनुरोध की स्थिति की स्थिति
तो अगर मैं सर्वर शट डाउन निम्न त्रुटि कॉलबैक निष्पादित नहीं है और अनुरोध चुपचाप विफल रहता है।
$.ajax({
type: "GET",
url: "http://localhost:3000/",
dataType: "script",
success: function() {
alert("success");
},
error: function() {
alert("error");
}
});
सर्वर पर पहुंचने पर त्रुटि को फेंकने का सबसे अच्छा तरीका क्या है।
संपादित करें - मैं क्या करने की कोशिश की और पढ़ा है यह प्रतीत होता है कि से jQuery के त्रुटि हैंडलिंग में बनाया JSONP, या डेटाप्रकार साथ काम नहीं करता: "स्क्रिप्ट"। तो मैं मैन्युअल टाइमआउट सेट करने का प्रयास करने जा रहा हूं।
संपादित करें - थोड़ा और शोध किया और ऐसा लगता है कि न केवल एजेक्स त्रुटि कॉलबैक काम नहीं करता है, लेकिन आप डेटा टाइप स्क्रिप्ट या जेसनपी के साथ AJAX अनुरोध को रोक नहीं सकते हैं, और वे अनुरोध टाइमआउट सेटिंग को अनदेखा करते हैं।
एक विकल्प नहीं है - jQuery-jsonp प्लगइन है, लेकिन यह छिपा iframes जो मैं नहीं बल्कि बचने चाहते हैं का उपयोग करता है। तो मैं नीचे सुझाए गए मैन्युअल टाइमआउट बनाने पर बस गया हूं। यदि अनुरोध समाप्त हो जाता है, तो आप अनुरोध को निरस्त नहीं कर सकते हैं, जिसका अर्थ है कि स्क्रिप्ट टाइमआउट के बाद भी लोड हो सकती है, लेकिन यदि सर्वर अनुपलब्ध है तो कम से कम कुछ आग लग जाएगी।
jQuery के AJAX में अंतर्निहित त्रुटि प्रबंधन है (नीचे मेरा उत्तर देखें) आप इन विकल्पों को लागू करने के लिए AJAXsetup का उपयोग कर सकते हैं। – Sphvn