Détecter XHR erreur est vraiment en raison de navigateur arrêter ou cliquez sur pour nouvelle page
Alors que ma page est en cours de chargement du contenu via XHR, si l'utilisateur clique sur le bouton arrêter ou de clics pour accéder à une autre page, le XHR fonction error() est appelée. Ce ne serait pas normalement être un gros problème, sauf pour l'utilisateur choc de voir beaucoup de (rouge) les messages d'erreur sur la page.
Les messages sont valables, il y avait effectivement une erreur lors de la récupération du contenu - mais c'est en raison de l'interaction de l'utilisateur, pas à cause d'une défaillance du système.
Est-il un moyen de faire la distinction entre un (404 | 500 | erreur de dépassement de délai) et d'une erreur causée par le fait que l'utilisateur cliquait sur le navigateur du bouton d'arrêt d' ?
EDIT: je suis en utilisant Dojo (d'où la fonction d'erreur de référence), mais je crois que ce serait une situation qui est commun à travers toute XHR mise en œuvre. Je vais regarder dans readyState de l'objet xhr quand l'erreur() est appelée
- Ce "XHR fonction error ()" parlez-vous? Il n'existe pas de méthode sur
XmlHttpRequest
instances. - apparaît qu'il y a un "onerror" événement soutenu par "la plupart" des navigateurs, apparemment. ref: developer.mozilla.org/en-US/docs/Web/API/...
Vous devez vous connecter pour publier un commentaire.
À la distinction entre les erreurs HTTP (
404
,401
,403
,500
, etc..) et de la demande d'avortement des erreurs (c'est à dire l'utilisateur appuie sur la touche Echap ou de naviguer à l'autre page) , vous pouvez vérifier le XHR.statut de la propriété, si la demande a été abandonnée en l'état membre sera égal à zéro:Un simple postRequest fonction:
Exécuter l'extrait ci-dessus ici.