XMLHttpRequest () & net :: ERR_NAME_NOT_RESOLVED

Ich schreibe eine Javascript-App, die eine HTTP-Anfrage an einen Remote-Server sendet. Der Benutzer gibt den Hostnamen ein.

Ich möchte eine Diagnosemeldung anbieten, wenn sie einen DNS-Namen eingeben, der nicht aufgelöst werden kann. Hier ist der aktuelle Code:

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();

In der Funktion onreadystatechange hat der req den Status = 0, die Antwort ist "", daher gibt es nicht viele Hinweise darauf, was schief gelaufen ist. In der Konsole wird jedoch "Fehler beim Laden der Ressource: net :: ERR_NAME_NOT_RESOLVED" angezeigt, sodass der Browser (Chrome) herausfinden konnte, was passiert ist.

Wie kann ich einen Hinweis auf ERR_NAME_NOT_RESOLVED erhalten?

Aktualisieren Ich bin auf diese Frage zurückgekommen und habe die Strategie angewendet, dass jede Antwort, bei der es sich nicht um eine Zeitüberschreitung handelt, bedeutet, dass der Name aufgelöst wird, der Host antwortet usw.

Die Antwort auf meine ursprüngliche Frage scheint zu lauten: Offenbar erkennt der Browser selbst (in diesem Fall Chrome) den Fehler und zeigt ihn in der Konsole an, aber die XMLHttpRequest-API ist nicht reich genug, um die Ursache anzugeben. Der arme Javascript-Programmierer kann das Timeout nicht umgehen.

Ich habe auch den CORS-Header entfernt, da einer der richtig notierten Kommentatoren keinen Wert hatte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage