jQuery ajax(jsonp)忽略超时并且不会触发错误事件
为了添加一些基本的错误处理,我想重写一段使用jQuery的$ .getJSON来从Flickr中提取一些照片的代码。这样做的原因是$ .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时,会问这个问题
慕标琳琳
宝慕林4294392
相关分类