Отложенный неудачный обратный вызов не вызывает - PullRequest
1 голос
/ 02 сентября 2011

Я пытаюсь выяснить, почему сбой обратного вызова не работает для этой отложенной

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 это похоже, но я подумал, что это достаточно отличается, он должен иметь свой собственный.Еще раз спасибо за любую помощь

1 Ответ

1 голос
/ 02 сентября 2011

Я прокомментировал другой вопрос , но проблема в том, что ваш URL: у него два ?, и он не должен

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);});

Вы можете url кодировать ? в %3F или использовать вторую версию, и jQuery будет url кодировать его для вас.

ОБНОВЛЕНИЕ: - , поэтому я проверил это на представлении, которое вернуло 500 внутренних ошибок сервера. Все работало нормально: обратный вызов с ошибкой прошел нормально.

Ваш URL возвращает 500 и пользовательскую страницу 500 ошибок. есть ли способ отключить его и попробовать снова?

...