XMLHttpRequest: самый быстрый способ определить, не возвращает ли ссылка статус 4xx?

В настоящее время я отправляю запрос GET через XMLHttpRequest в Javascript и смотрю на возвращенный статус, чтобы определить, действительны ли ссылки и не возвращают ли ошибку 4xx. Тем не менее, ссылки, на которые я смотрю, - это 10 секунд-1 мин + видео, и я бы не стал ждать ответа сервера.

У меня была небольшая ошибка в моем проекте, когда все действительные запросы возвращали 0, а недопустимые - 403. Это было связано с материалом заголовка из разных источников, который был вызван некоторыми недопустимыми разрешениями в моем manifest.json. В любом случае, это было на самом деле полуидеальным, поскольку я мог просто «предположить», что запросы, возвращающие 0, действительны, а 403 - недействительны. На моем сервере есть дополнительная проверка, на которую отправляются ссылки, поэтому я не буду полностью об этом беспокоиться. Это только для некоторых функций внешнего интерфейса. Однако действительные ссылки не всегда возвращали 0 (иногда 200), поэтому я хочу найти реальное решение для этого. Есть ли способ обойти это? Спасибо!

Обновлено: ссылки непосредственно на файлы mp4, размещенные в Интернете.

Попробуйте вместо этого использовать method: 'HEAD'.

wOxxOm 05.09.2018 12:02

Это потрясающе. Большое спасибо!

Levi Murray 05.09.2018 12:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В большинстве случаев вам просто нужно подождать, пока XMLHttpRequest.readyState не станет HEADERS_RECEIVED (2) вместо DONE (4). Вы также можете использовать метод HEAD вместо GET.

Другие вопросы по теме