web-dev-qa-db-fra.com

cas d'utilisation du gestionnaire xmlHttpRequest.onerror

Quel genre de situation pourrait faire appeler ce gestionnaire? Je ne trouve aucun cas où cette méthode génère une erreur.

J'ai essayé avec l'appareil hors ligne, je reçois xmlHttpRequest.status = 0 mais aucune erreur.

La question est quel type de situations puis-je créer afin de tester les fonctionnalités de ce gestionnaire.

var xmlhttp = new XMLHttpRequest(),
  method = 'GET',
  url = 'https://developer.mozilla.org/';

xmlhttp.open(method, url, true);
xmlhttp.onerror = function () {
  console.log("** An error occurred during the transaction");
};
xmlhttp.send();

De: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget/onerror

4
Developer

Votre question est l'exemple parfait. Essayez simplement votre code à partir de votre console de développeur Web sur cette même page.

 enter image description here

Ici, essayez vous-même:

var xmlhttp = new XMLHttpRequest(),
  method = 'GET',
  url = 'https://developer.mozilla.org/';

xmlhttp.open(method, url, true);
xmlhttp.onerror = function () {
  console.log("** An error occurred during the transaction");
};
xmlhttp.send();
Ici, essayez vous-même: Lorsque vous traitez avec un réseau IO, toutes sortes de choses peuvent se produire. Les demandes d'origine croisée ne sont qu'une seule. Que se passe-t-il si le serveur est hors ligne et que vous obtenez un 404? Ou la base de données de l'application pour laquelle vous faites une demande est en mode hors connexion? Que se passe-t-il s'il y a une erreur de compilation et que le serveur renvoie 404. Et s'il renvoie une réponse non autorisée?

Vous pouvez demander à votre serveur de renvoyer toute réponse HTTP avec un code d’état supérieur à 400. Il se déclenchera. Vous pouvez également tester différents en-têtes CORS.

2
Alexander Higgins

Étant donné qu'un appel XHR concerne une réponse du serveur, onerror entrerait en jeu en cas d'erreur sur le serveur. Changer votre client pour qu'il soit hors ligne ne simule pas une erreur de serveur.

Supposons que la ressource du serveur soit déplacée et que le serveur réponde avec une erreur 404? Et si le serveur arrive à expiration? Que se passe-t-il si la requête elle-même est mal formée et que le serveur génère une erreur?

0
Scott Marcus