Pour ajouter un peu de base de la gestion d'erreur, je voulais réécrire une partie du code utilisé jQuery $.getJSON à tirer dans certaines photos provenant de Flickr. La raison pour cela est que $.getJSON ne fournit pas d'erreur de manipulation ou de travailler avec des délais d'attente.
Puisque $.getJSON est juste un wrapper autour de $.ajax, j'ai décidé de réécrire la chose et surprise, surprise, il fonctionne parfaitement.
Maintenant, le plaisir commence. Quand j'ai délibérément causer une erreur 404 (en changeant l'URL) ou le réseau de délai d'attente (en n'étant pas connecté à l'interwebs), l'événement d'erreur n'est pas le feu, à tous. Je suis à une perte quant à ce que je fais mal. L'aide est très apprécié.
Voici le code:
$(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);
}
});
});
Je tiens à ajouter que cette question a été posée lors de jQuery a été à la version 1.4.2