Действительно ли возможно зафиксировать ошибку при использовании 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");
});
Заранее спасибо за любые ответы!
Похоже, это работает сейчас:
jQuery(document).ajaxError(function(event, request, settings){
alert("Error");
});
Если вы сотрудничаете с провайдером, вы можете послать еще один параметр строки запроса, который будет функцией обратного вызова при возникновении ошибки.
?callback=?&error=?
Это называется JSONPE, но это вовсе не стандарт дефакто.
Затем провайдер передает информацию в функцию ошибки, чтобы помочь вам в диагностике.
Однако это не помогает при ошибках comm - jQuery придется обновить, чтобы функция ошибки также вызывалась по таймауту, как в ответе Адама Беллайра.