Как я ловлю $ jQuery .getJSON (или $ .ajax с типом данных устанавливают на 'jsonp'), ошибка при использовании JSONP?

Действительно ли возможно зафиксировать ошибку при использовании JSONP с jQuery? Я попробовал и $ .getJSON и $ .ajax методы, но ни один не зафиксирует 404 ошибки, которые я тестирую. Вот то, что я попробовал (имейте в виду, что они все работают успешно, но я хочу обработать случай, когда он перестал работать):

jQuery.ajax({
    type: "GET",
    url: handlerURL,
    dataType: "jsonp",
    success: function(results){
        alert("Success!");
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
        alert("Error");
    }
});

И также:

jQuery.getJSON(handlerURL + "&callback=?", 
    function(jsonResult){
        alert("Success!");
    });

Я также попытался добавить $ .ajaxError, но это не работало также:

jQuery(document).ajaxError(function(event, request, settings){
   alert("Error");
});

Заранее спасибо за любые ответы!

76
задан Andy May 21 November 2008 в 19:48
поделиться

2 ответа

Похоже, это работает сейчас:

jQuery(document).ajaxError(function(event, request, settings){
   alert("Error");
});
2
ответ дан 24 November 2019 в 11:18
поделиться

Если вы сотрудничаете с провайдером, вы можете послать еще один параметр строки запроса, который будет функцией обратного вызова при возникновении ошибки.

?callback=?&error=?

Это называется JSONPE, но это вовсе не стандарт дефакто.

Затем провайдер передает информацию в функцию ошибки, чтобы помочь вам в диагностике.

Однако это не помогает при ошибках comm - jQuery придется обновить, чтобы функция ошибки также вызывалась по таймауту, как в ответе Адама Беллайра.

3
ответ дан 24 November 2019 в 11:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: