La capture de XMLHttpRequest de la croix-des erreurs de domaine
Est-il un moyen de rattraper une erreur causée par Access-Control-Allow-Origin
lors d'une demande? Je suis à l'aide de jQuery, et le gestionnaire ensemble dans .ajaxError()
n'est jamais appelé parce que la demande n'est jamais fait pour commencer.
Est-il une solution de contournement?
- peut-être utile d'info: la Détection des Erreurs avec XMLHttpRequest
Vous devez vous connecter pour publier un commentaire.
Pour la SCRO demandes de, de la du XmlHttpRequest onError le gestionnaire de feu. Si vous avez accès à la crue objet XmlHttpRequest, essayez de définir un gestionnaire d'événements comme:
De noter quelques petites choses:
Sur la SCRO demandes, le navigateur de la console.journal affichera un message d'erreur. Cependant, ce message d'erreur n'est pas disponible pour votre code JavaScript (je pense que c'est fait pour des raisons de sécurité, j'ai posé cette question une fois avant d': Est-il possible d'intercepter des CORS des erreurs?).
Le xhr.statut et xhr.statusText ne sont pas définies dans la onError gestionnaire, de sorte que vous n'avez pas vraiment avoir toutes les informations utiles sur le pourquoi de la SCRO échec de la demande. Vous savez seulement qu'il a échoué.
readyState
,status
, etstatusText
propriétés d'un objet XMLHttpRequest qui a échoué en raison de la SCRO.Il est possible d'obtenir de l'état d'erreur comme ceci:
Source: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
onError
.onError
se déclenche uniquement sur les pannes de réseau, et si vous avez un code de statut qui signifie une réponse a été reçue avec succès.Définir un gestionnaire pour onerror et vous serez capable d'attraper la croix-domaine des exceptions. Je ne sais pas pourquoi le onerror événement est déclenché pour des exceptions et non la erreur événement, mais je viens de tester et cela a fonctionné.
req.onerror = function () {..}
est équivalent àreq.addEventListener('error', function () {..})