Untuk menambahkan beberapa penanganan kesalahan dasar, saya ingin menulis ulang sepotong kode yang menggunakan $ .getJSON jQuery untuk menarik beberapa foto dari Flickr. Alasan untuk melakukan ini adalah karena $ .getJSON tidak menyediakan penanganan kesalahan atau bekerja dengan waktu tunggu.
Karena $ .getJSON hanyalah pembungkus sekitar $ .ajax saya memutuskan untuk menulis ulang hal itu dan kejutan kejutan, itu bekerja dengan sempurna.
Sekarang kesenangan dimulai. Ketika saya dengan sengaja menyebabkan 404 (dengan mengubah URL) atau menyebabkan jaringan menjadi waktu tunggu (dengan tidak terhubung ke interwebs), peristiwa kesalahan tidak menyala, sama sekali. Saya bingung dengan apa yang saya lakukan salah. Bantuan sangat dihargai.
Berikut kodenya:
$(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);
}
});
});
Saya ingin menambahkan bahwa pertanyaan ini diajukan ketika jQuery berada di versi 1.4.2