1

失敗したコールバックがこの遅延に対して機能しない理由を理解しようとしています

http://jsfiddle.net/austinbv/wzve6/6/

get_each_total = function(callback) {
    var requests;
    requests = [];
    var url;
    url = "http://otter.topsy.com/search.js?callback=?&apikey=38A260E9D12A4908B1AF9184B691131&q=justin+bieber&window=d";
    requests.push($.getJSON(url, function(data) {}));
    $.when.apply($, requests).then(function() {
        callback();
    }, function() {
        alert("There was an error communicating with a remote library, try again in a few");
    });
};

get_each_total_broken = function(callback) {
    var requests;
    requests = [];
    var url;
    url = "http://otter.topsy.com/hjhkl/sehjkhhkjhkarch.js?callback=?&apikey=38A260E9D12A4908B1AF9184B691131&q=justin+bieber&window=d";
    requests.push($.getJSON(url));
    $.when.apply($, requests).then(function() {
        callback();
    }, function() {
        callback();
    });
};

$(function() {
    get_each_total_broken(function() {
        alert("fail");
    });
});

私は似ているJquery遅延コールバックの奇妙さについて質問しましたが、これは十分に異なっていると思いました。助けてくれてありがとう

編集

jQuery irc で話し合った後、それは私のバグのようです!

4

1 に答える 1

1

私は他の質問にコメントしましたが、問題はあなたのURLです.2つ?あり、すべきではありません

url = "http://otter.topsy.com/hjhkl/sehjkhhkjhkarch.js?callback=?&apikey=38A260E9D12A4908B1AF9184B691131&q=justin+bieber&window=d";

する必要があります

url = "http://otter.topsy.com/hjhkl/sehjkhhkjhkarch.js?callback=somevalue&apikey=38A260E9D12A4908B1AF9184B691131&q=justin+bieber&window=d";

あるいは:

url = "http://otter.topsy.com/hjhkl/sehjkhhkjhkarch.js"
$.getJSON(url, {
    "callback": "somevalue",
    "apikey": "38A260E9D12A4908B1AF9184B691131",
    "q": "justin bieber",
    "window": "d"
}, function(data){ alert("Got: " + data);});

to を URL エンコードする?%3F、2 番目のバージョンを使用すると、jQuery がそれを URL エンコードします。

更新:-私はプレーン 500 内部サーバー エラーを返したビューでこれをテストしました。それはうまくいきました:エラーコールバックはうまくいきました。

あなたの URL は 500 とカスタム 500 エラー ページを返します。これをオフにしてもう一度試す方法はありますか?

于 2011-09-02T05:26:52.677 に答える