Как я могу обработать ошибку 404, выдавая XMLHttpRequest с неверным URL? - PullRequest
0 голосов
/ 23 сентября 2019

Я пишу код, в котором я использую типичный 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

1 Ответ

0 голосов
/ 23 сентября 2019

Отвечая на мой собственный вопрос с содержанием из комментариев Jaromanda X.«Консоль показывает сетевые ответы, и вы ничего не можете сделать, чтобы скрыть это от конечного пользователя», поэтому, пока я делаю запрос, который приводит к ошибке 404, я не могу вывести его из консоли.Учитывая, что в моем примере я не вижу способа иногда делать 404 запроса (потому что запрос должен быть сделан, чтобы проверить, есть ли в тезаурусе слово, и если это не так, произойдет 404), нетисправить эту проблему (и нет необходимости ее исправлять).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...