При запросе audio.mp3 бэк может вернуть HTTP 200 | 206 | 404 | 401.
Хочу на 400 и 401 показывать разные сообщения в браузере.
Но по
спецификации не вижу возможности получить именно http код.
Какие есть альтернативы/библиотеки воспроизведения media на странице чтобы получить причину MEDIA_ERR_SRC_NOT_SUPPORTED когда бэк возвращает HTTP 401?
Была идея использовать WebWorker, но натолкнулся на
это и не стал дальше копать.
---
сейчас так работает. не нравится, что невозможно поймать 404, повторный запрос и вообще лаг на fetch
// псевдо
audio = new Audio();
audio.src = url;
audio.addEventListener('canplaythrough', () => audio.play() });
// костыль.
audio.onerror = function (e) {
fetch('/check_auth', {credentials: 'include'})
.then(r => {
if (r.status == 401) { alert('Обновить страницу') }
else { alert('Что-то пошло не так. Возможно файл не найден') }
})
}