У меня есть функция Javascript, где я получаю данные через JSONP с моего сервера. Я попытался имитировать ошибки сервера или отсутствие доступа в Интернет (он должен запускаться в приложении cordova, поэтому клиент не имеет доступа в Интернет), но я не могу поймать ошибку. Вот мой код:jQuery jsonp catch «Не удалось загрузить ресурсы ...»
var completed = false;
jQuery.ajax({
url: "http://www.someDomainThatDoesn'tWork.com/getsContent.php?callback=?",
dataType: "json",
success: function(data) {
completed = true
console.log(data);
},
error: function() {
console.log("fail");
},
statusCode: {
404: function() {
console.log("fail 2");
}
}
}).fail(function() {
console.log("fail 3");
}).always(function() {
if (!completed) {
console.log("fail 4");
}
});
Как вы можете видеть, я пытаюсь поймать (разные) ошибки в четырех местах. Однако, если я, например, изменить URL, чтобы тот, который не существует, Javascript просто прерывает и дать мне ошибку
Не удалось загрузить ресурс: сервер ответил со статусом 404 (Не найдено)
и ни одна из ловушек ошибки не выполняется.
В документации jQuery.ajax() он говорит
Примечание: Этот обработчик не вызывается для междоменного сценария и запросов JSONP между доменами. , поэтому я не должен удивляться.
Есть ли способ уловить эту ошибку? Я также попытался обнять его с помощью
try{} catch(error) {}
но это тоже не делает.