Вывести уведомление, если данные не отправились на сервер по какой то причине. XMLHttpRequest. CORS

Я отправляю данные формы на другой домен, время от времени возникают технические работы на сервере хостинга, и сервер становится недоступным. Пользователь нажимает кнопку «Отправить» в форме, но ничего не происходит, нет ответа сервера, только в консоли вы можете увидеть, что есть ошибка политики CORS (net::ERR_NAME_NOT_RESOLVED). В документации сказано, что из соображений безопасности JS не видит информацию об ошибке CORS. Однако, есть ли какие-либо альтернативные способы обнаружения ошибки в целом, чтобы отобразить уведомление для пользователя, например:

Сервер временно недоступен, попробуйте позже!?

const form = document.getElementById('contact_form');
form.addEventListener('submit', function(e) {
  e.preventDefault();
  const send = {
    name: document.querySelector('input[name=name]').value,
    email: document.querySelector('input[name=email]').value,
    subject: document.querySelector('input[name=subject]').value,
    message: document.querySelector('input[name=message]').value
  };
  const jsonString = JSON.stringify(send);
  const xhr = new XMLHttpRequest();
  const action = form.getAttribute('action');
  xhr.open('POST', action, true);
  xhr.setRequestHeader('Content-type', 'text/plain');
  xhr.onload = function() {
        if (this.readyState == 4 && this.status == 200) {
          alert(xhr.responseText);
    };
  xhr.send(jsonString);
});

Пробовал так:

if (this.readyState == 0) {
   alert('Сервер временно недоступен, попробуйте позже!');
}

и так:

if (this.status == 503) {
   alert('Сервер временно недоступен, попробуйте позже!');
}

и так:

if (this.status != 4) {
   alert('Сервер временно недоступен, попробуйте позже!');
}

и так:

if (this.status != 200) {
   alert('Сервер временно недоступен, попробуйте позже!');
}

Но все равно ничего не выводится.

Есть какие то идеи?

Спасибо!


Ответы (0 шт):