Um einige grundlegende Fehlerbehandlungen hinzuzufügen, wollte ich einen Code neu schreiben, der jQuerys $ .getJSON verwendete, um einige Fotos von Flickr abzurufen. Der Grund dafür ist, dass $ .getJSON keine Fehlerbehandlung bietet oder nicht mit Zeitüberschreitungen arbeitet.
Da $ .getJSON nur ein Wrapper um $ .ajax ist, habe ich beschlossen, das Ding neu zu schreiben und Überraschung zu überraschen, es funktioniert einwandfrei.
Jetzt fängt der Spaß aber an. Wenn ich absichtlich einen 404 verursache (indem ich die URL ändere) oder das Netzwerk eine Zeitüberschreitung verursacht (indem ich nicht mit den Interwebs verbunden bin), wird das Fehlerereignis überhaupt nicht ausgelöst. Ich weiß nicht, was ich falsch mache. Hilfe wird sehr geschätzt.
Hier ist der 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);
}
});
});
Ich möchte hinzufügen, dass diese Frage gestellt wurde, als jQuery auf Version 1.4.2 war