131 votes

NS_BINDING_ABORTED Affiché dans Firefox avec HttpFox

Je vois que certaines des appels serveur (utilisés à des fins de suivi) sur mon site sont interrompus dans Firefox lorsqu'on regarde à travers HttpFox. Cela se produit lorsque je clique sur un lien qui charge une autre page dans la même fenêtre. Ça fonctionne bien avec les popups. Le type d'erreur affiché est NS_BINDING_ABORTED. J'ai besoin de savoir si l'appel de suivi atteint le serveur ou non. Ça fonctionne parfaitement avec Internet Explorer. Y a-t-il un problème avec l'outil ? Dans ce cas, pouvez-vous en suggérer un autre qui pourrait être utilisé dans Firefox également.

62voto

Eliptical view Points 421

Parce que votre serveur ne renvoie pas d'en-têtes HTTP Expires, le navigateur vérifie si ce qui se trouve dans son cache est actuel.

Il le fait en envoyant une demande au serveur en précisant la date de ce qu'il a dans le cache, et le serveur envoie un statut 304 indiquant au client que ce qu'il a est à jour. En d'autres termes, le serveur n'envoie pas à nouveau l'intégralité du contenu mais envoie plutôt un court en-tête pour indiquer que le contenu du cache existant est à jour.

Ce que vous devez probablement corriger, c'est d'ajouter des en-têtes Expires à ce que vous servez. Ensuite, vous verrez le message NS_BINDING_ABORTED changer en (cache), ce qui signifie que le navigateur obtient simplement le contenu de son cache, sachant qu'il n'a pas encore expiré.

Je devrais ajouter que, lorsque vous faites un rafraîchissement forcé dans FireFox, il suppose que vous souhaitez vérifier ce qui se trouve dans le cache, donc il ignore temporairement Expires.

42voto

Nickolay Points 14384

Vous ne devriez pas vous inquiéter simplement parce que vous voyez quelque chose qui ressemble à un code d'erreur (NS_BINDING_ABORTED).

Dans un post un développeur de Firefox confirme que NS_BINDING_ABORTED est simplement une indication qu'un chargement de page a été arrêté.

Il semble tout à fait normal qu'ouvrir une page alors qu'une autre page se charge annule les chargements sur la première page. Cela ne signifie pas nécessairement que les chargements ont été interrompus avant que la requête ne soit envoyée au serveur, ce que vous semblez craindre.

[edit: reformulé & supprimé la partie sur le fait que je ne suis pas familier avec HttpFox, car les personnes qui voient ceci en 2022 ne l'utilisent probablement pas de toute façon.]

10voto

Scarlet Pongen Points 11

Quel autre javascript avez-vous sur la page? Certains javascript pourraient être déclenchés, ce qui pourrait provoquer l'annulation de la requête.

J'ai remarqué la même chose dans mon application. Je redirigeais la page en javascript (window.location = '/some/page.html') mais ensuite, plus bas dans le bloc de code, j'appelais 'window.reload()'. La redirection précédente a été annulée car window.reload a été appelé.

Je ne sais pas quel suivi vous utilisez, mais il est possible que la requête soit envoyée à votre serveur mais que la requête soit annulée car une autre requête a été émise par la suite.

10voto

Arya Points 427

Dans mon cas, même erreur NS_BINDING_ABORTED, mais c'était parce qu'un élément "button", sur lequel j'ai cliqué pour déclencher un événement, manquait de la valeur de l'attribut "type" "submit" = Comment empêcher les boutons de soumettre des formulaires

7voto

Mike Points 11

J'ai rencontré un problème similaire, mais j'ai identifié la cause.

J'ai un lien dans la première cellule d'une ligne de tableau, et un peu de Javascript qui reproduit ce lien à travers les autres TD de la ligne. Lorsque je clique sur le lien "réel" (dans la première cellule), j'obtiens cet effet indésirable; lorsque je clique sur les autres cellules de la ligne, tout va bien. Je pense que c'est parce que le script ajoute un second lien à cette première cellule, alors qu'elle en a déjà un.

Par conséquent, deux demandes instantanées pour la même page, la première étant interrompue par la seconde.

Cette technique est assez courante, donc il faut être vigilant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X