SORU
16 HAZİRAN 2009, Salı


jQuery ajax (jsonp) bir zaman aşımı yok sayar ve'hata Olay t ateş etmiyor

Bazı temel hata işleme eklemek için, DV kullanılan bir kod parçası yazmak istedim.$.bazı fotoğraf çekmek için getJSON Flickr. Bu iş için nedeni dolar.getJSON zaman aşımı ile hata işleme ya da iş sağlamaz.

Yana $.getJSON sarıcı dolar civarında.şey yeniden ve sürpriz sürpriz yapmaya karar verdim ajax, kusursuz bir şekilde çalışıyor.

Şimdi eğlenceli olsa başlar. Ben bilinçli bir 404 (URL değiştirerek) neden veya Ağ zaman aşımı nedeni terimini bağlı olmayarak), hata olayı, hiç ateş etmiyor. Neyi yanlış yapıyorum gibi bir kayıp değilim. Çok takdir yardım.

İş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 soruyu jQuery sürüm 1.4.2 de zaman istedi olduğunu eklemek istiyorum

CEVAP
25 ŞUBAT 2011, Cuma


jQuery 1.5 ve daha yüksek JSONP istekleri ile hata işleme için daha iyi bir destek var. Ancak, $.getJSON yerine $.ajax yöntemi kullanmak gerekir. Benim için, bu gibi çalışır:

var req = $.ajax({
    url : url,
    dataType : "jsonp",
    timeout : 10000
});

req.success(function() {
    console.log('Yes! Success!');
});

req.error(function() {
    console.log('Oh noes!');
});

Zaman aşımı hile ve 10 saniye sonra başarılı isteği hiçbir zaman hata işleyicisi, çağrı gibi görünüyor.

Bu konuda da biraz blogpost yaptım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Justin Davis

    Justin Davis

    14 Ocak 2008
  • ODN

    ODN

    26 Kasım 2006
  • ShoSho

    ShoSho

    20 Ocak 2010