Я пишу код, в котором я использую типичный XMLHttpRequest для выполнения вызовов API с использованием пользовательского ввода.Иногда пользовательский ввод такой, что вызов API выполняется с неверного URL (точнее, API - это тезаурус, и когда вы используете его для запроса слова, не входящего в тезаурус, вы просто получаете ошибку 404 истраница не существует).Это приводит к ошибке 404 (а затем к ошибке CORS, которая, на мой взгляд, является просто побочным эффектом оригинала), и приводит строку request.send ().Моя проблема в том, что что бы я ни пытался, я не могу найти способ справиться с ошибкой 404.
Я пытался отловить ошибку и обработать ее в различных частях кода, но в каждой из них ошибка выдается и не обрабатывается.Места, в которых я пытался обработать ошибку:
- прослушиватель событий «ошибка».Вызывается обратный вызов, но, по-видимому, ошибка уже была выброшена и не обработана
- В прослушивателе событий "load"
- функция onreadystatechange
- Установка request.send () вызвать блок try / catch и сделать вызов синхронным;Как и в случае с прослушивателем событий ошибки, код catch запускается, но ошибка все еще не обрабатывается и попадает в консоль.Обратите внимание, что это ответ, предложенный Как отловить ошибку, выданную недействительным URL-адресом, используя XMLHttpRequest с аналогичным названием, поэтому я создал новую тему.
Как правильно обработать эту ошибку, чтобы она не отправлялась на консоль?
Мой код выглядит так (без большинства вышеперечисленных попыток выше):
var req = new XMLHttpRequest();
req.open("GET",url, false);
req.addEventListener("load", function(event) {
... (handle response)
}
req.send(); //this is where the error comes in