कुछ बुनियादी त्रुटि हैंडलिंग को जोड़ने के लिए, मैं कोड के एक टुकड़े को फिर से लिखना चाहता था जो कि कुछ फोटो में फ़्लिकर से खींचने के लिए jQuery के $ .getJSON का उपयोग करता था। ऐसा करने का कारण यह है कि $ .getJSON एरर हैंडलिंग या टाइमआउट के साथ काम नहीं करता है।
चूँकि $ .getJSON, $ .ajax के आसपास एक आवरण मात्र है। मैंने बात फिर से लिखने और आश्चर्य चकित करने का निर्णय लिया, यह त्रुटिपूर्ण काम करता है।
हालांकि अब मज़ा शुरू होता है। जब मैं जान-बूझकर 404 (URL को बदलकर) या नेटवर्क को टाइमआउट (इंटरव्यू तक हुक नहीं होने के कारण) का कारण बनता हूं, तो त्रुटि की घटना में आग नहीं लगती है। मैं एक नुकसान में हूं कि मैं क्या गलत कर रहा हूं। मदद काफी सराहना की है।
यहाँ कोड है:
$(document).ready(function(){
// var jsonFeed = "http://api.flickr.com/services/feeds/photos_public.gne"; // correct URL
var jsonFeed = "http://api.flickr.com/services/feeds/photos_public.gne_______"; // this should throw a 404
$.ajax({
url: jsonFeed,
data: { "lang" : "en-us",
"format" : "json",
"tags" : "sunset"
},
dataType: "jsonp",
jsonp: "jsoncallback",
timeout: 5000,
success: function(data, status){
$.each(data.items, function(i,item){
$("<img>").attr("src", (item.media.m).replace("_m.","_s."))
.attr("alt", item.title)
.appendTo("ul#flickr")
.wrap("<li><a href=\"" + item.link + "\"></a></li>");
if (i == 9) return false;
});
},
error: function(XHR, textStatus, errorThrown){
alert("ERREUR: " + textStatus);
alert("ERREUR: " + errorThrown);
}
});
});
मैं यह जोड़ना चाहूंगा कि जब jQuery संस्करण 1.4.2 पर था, तो यह प्रश्न पूछा गया था