ในการเพิ่มการจัดการข้อผิดพลาดพื้นฐานฉันต้องการเขียนโค้ดใหม่ที่ใช้ $ .getJSON ของ jQuery เพื่อดึงภาพถ่ายบางส่วนจาก 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