@castetus

Как перехватить 404 при скачивании файла?

Всем привет!
Есть ссылка с атрибутом download.
Если файла нет на сервере - как можно перехватить 404 ошибку средствами JS, чтобы красиво ее обработать?
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
chincharovpc
@chincharovpc
МОжно при нажатии на ссылку вызвать функцию и получить файл с помощью fetch, далее превратить файл в blob и перейти на ссылку blob. В catch можно перехватить ошибки
const downloadBlobFile = (id, fileName) => {
  fetch(`${API_URL}/files/download/${id}`)
      .then(response => {
        return response.blob()
      })
      .then(blob => {
        const link = window.document.createElement("a");
        link.href = window.URL.createObjectURL(blob);
        link.download = fileName || 'file';
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
      })
      .catch(() => {
        //Обработка ошибок
      });
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы