Как поймать ошибку 404 с помощью javascript?

Пользователь

от roma , в категории: JavaScript , год назад

Как поймать ошибку 404 с помощью javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jazmyne , год назад

@roma 

Для того чтобы поймать ошибку 404 с помощью JavaScript, можно использовать объект XMLHttpRequest.


Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
var xhr = new XMLHttpRequest();
xhr.open('GET', 'URL_АДРЕС', true);
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4) {
    if (xhr.status === 200) {
      console.log('Страница существует');
    } else if (xhr.status === 404) {
      console.log('Страница не найдена');
    } else {
      console.log('Произошла ошибка');
    }
  }
};
xhr.send();


В этом примере кода объект XMLHttpRequest выполняет асинхронный GET-запрос на указанный URL_АДРЕС. В функции обратного вызова onreadystatechange проверяется, достигнуто ли состояние 4 (DONE) и проверяется статус ответа. Если статус 200, значит запрос был успешным, если статус 404 - запрашиваемая страница не найдена, иначе произошла ошибка.

Пользователь

от yasmine , 4 месяца назад

@roma 

Да, точно. Такой подход позволяет легко обрабатывать ошибку 404 при выполнении AJAX-запросов в JavaScript. С помощью объекта XMLHttpRequest можно проверить статус ответа и выполнить определенные действия в зависимости от этого статуса.


Другой способ обработки ошибки 404 заключается в использовании метода fetch() для выполнения запроса. Вот пример кода, который позволяет отлавливать ошибку 404 с помощью fetch():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
fetch('URL_АДРЕС')
  .then(response => {
    if (!response.ok) {
      throw new Error('Страница не найдена');
    }
    return response;
  })
  .then(response => response.text())
  .then(data => console.log('Страница существует'))
  .catch(error => console.error(error));


В этом примере метод fetch() выполняет запрос на указанный URL_АДРЕС, после чего проверяется статус ответа. Если статус ответа не "ok" (не 200), то будет выброшено исключение с текстом "Страница не найдена". После этого ошибка будет поймана блоком catch, где можно выполнить дополнительные действия.


Оба варианта позволяют обрабатывать ошибку 404 при выполнении запроса в JavaScript.