Bazı temel hata işlemeyi eklemek için, Flickr'dan bazı fotoğrafları çekmek için jQuery'nin $ .getJSON'unu kullanan bir kod parçasını yeniden yazmak istedim. Bunu yapmanın nedeni, $ .getJSON'un hata işleme sağlamaması veya zaman aşımlarıyla çalışmamasıdır.
$ .GetJSON sadece $ .ajax civarında bir paketleyici olduğundan, bir şeyi yeniden yazmaya ve sürpriz sürprizi yapmaya karar verdim, kusursuz çalışıyor.
Şimdi eğlence yine de başlıyor. Kasıtlı olarak bir 404'e (URL'yi değiştirerek) neden olduğumda veya ağın zaman aşımına uğramasına (interweb'lere bağlanmayarak) neden olduğumda, hata olayı hiç çalışmıyor. Neyi yanlış yaptığımı bilemiyorum. Yardım çok takdir edilmektedir.
İşte kod:
$(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);
}
});
});
Bu sorunun jQuery 1.4.2 sürümündeyken sorulduğunu eklemek isterim.