Quand faut du XMLHttpRequest onerror gestionnaire de feu

J'ai un petit problème de compréhension XMLHttpRequest's des gestionnaires. La spécification dit ceci à propos de l' onerror gestionnaire:

error [Expédié ... ] Lorsque la demande a échoué.

load [Expédié ... ] Lorsque la demande a complété avec succès.

Le problème est, qu'est-ce que cela signifie que "la demande a échoué". Qui pourrait être

  • la demande ne pouvait pas être délivré à tous (par exemple. Connexion refusée et de telles erreurs), ou
  • le ci-dessus ainsi que le serveur a renvoyé un code d'erreur (par exemple. 404)

Aussi, je voudrais savoir si cela signifie onerror et onload ne doit jamais feu simultanément.

Cette référence indique le onerror gestionnaire doit être exécutée selon les status code et onload selon readyState. Qui pourrait indiquer qu'elles ne sont pas mutuellement exclusives, cependant, je ne pense pas que c'est une information qui fait autorité.

Je demande parce que, à l'aide de la dernière Opéra instantané, j'ai trouvé onload est tiré, même sur le code d'état 404. Je sais que les tests status est un pari sûr, mais je voudrais savoir si c'est quelque chose que j'ai à faire par la spécification ou tout simplement un moyen de contournement d'un bogue dans l'Opéra.

  • Je prends has completed successfully à dire que vous recevez un code d'état, qu'il s'agisse de 200 OK ou un code d'erreur comme 404. Google Chrome est également incendies onload même si le code d'état est un code d'état d'erreur.
  • onerror et onload jamais feu simultanément. C'est soit l'un ou l'autre. Cependant onloadend incendies dans les deux cas, et est le dernier événement dans la ligne.
InformationsquelleAutor jpalecek | 2012-05-14