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

  • AndroidSale

    AndroidSale

    17 NİSAN 2011
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008
  • Skrillex

    Skrillex

    6 NİSAN 2010