XMLHttpRequest () & net :: ERR_NAME_NOT_RESOLVED

Estoy escribiendo una aplicación de JavaScript que realiza una solicitud HTTP de un servidor remoto. El usuario ingresará el nombre del host.

Quiero ofrecer un mensaje de diagnóstico si ingresan un nombre DNS que no se puede resolver. Aquí está el código actual:

var req, t, url;
url = 'http://definitelydoesntexist0x314159.com';
req = new XMLHttpRequest();
req.open('GET', url, true);
req.onreadystatechange = function() {
  if (req.readyState == 4) {
    t = req.statusText;
  }
};
req.send();

En la función onreadystatechange, la solicitud tiene status = 0, la respuesta es "", por lo que no hay mucha indicación de lo que salió mal. Sin embargo, la consola muestra "Error al cargar el recurso: net :: ERR_NAME_NOT_RESOLVED", por lo que el navegador (Chrome) pudo descubrir qué sucedió.

¿Cómo puedo obtener una indicación de ERR_NAME_NOT_RESOLVED?

Actualizar: Volví a esta pregunta, usando la estrategia de que cualquier respuesta que no sea 'tiempo de espera' significa que el nombre se resolvió, el anfitrión responde, etc.

La respuesta a mi pregunta original parece ser: Parece que el navegador en sí (Chrome, en este caso) detecta la falla para resolver y lo muestra en la Consola, pero la API XMLHttpRequest no es lo suficientemente rica como para indicar la causa. Entonces, el pobre programador de Javascript está atascado con el tiempo de espera como una solución alternativa.

También eliminé el encabezado CORS, ya que uno de los comentaristas señaló correctamente que no tenía valor.

Respuestas a la pregunta(2)

Su respuesta a la pregunta