Вы можете узнать, жив ли сервер, выполнив к нему запрос no-cors.
Но вы не сможете получить больше информации, чем эта, то есть перенаправление ошибок (404, 501 и т. Д.) Будет считаться живым.
Это потому, что, хотя этот режим позволяет нам отправлять запросы, как если бы не было ограничений CORS, полученный вами ответ на самом деле непрозрачен, и никакой другой информации, кроме ", URL-адрес сопоставлен с некоторымиответ " будет доступен для наших скриптов.
function isAlive(url) {
return fetch(url, {mode: 'no-cors'})
.then(r => true)
.catch(r => false);
}
isAlive('https://google.com')
.then(r => console.log('google', r));
isAlive('https://reallyf4kewebsite.com')
.then(r => console.log('reallyf4kewebsite', r));
isAlive('/')
.then(r => console.log('stacksnippets', r));
isAlive('https://google.com/foo/bar/baz')
.then(r => console.log('404 redirect', r));