518 votes

Que signifie status = annulé pour une ressource dans Chrome Developer Tools?

Qu'est-ce qui provoquerait l'annulation d'une page? J'ai une capture d'écran des outils de développement Chrome.

Ressource annulée

Cela arrive souvent, mais pas à chaque fois. Il semble qu'une fois que d'autres ressources sont mises en cache, une actualisation de page chargera LeftPane.aspx. Et ce qui est vraiment étrange, c'est que cela se produit uniquement dans Google Chrome, pas Internet Explorer 8. Des idées pour lesquelles Chrome annulerait une demande?

749voto

whamma Points 2033

Nous avons combattu un problème similaire où Chrome a été l'annulation de requêtes de chargement de choses à l'intérieur des cadres ou des iframes, mais seulement par intermittence et il semblait dépendre de l'ordinateur et/ou de la vitesse de la connexion internet.

Cette information est à quelques mois de la date, mais j'ai construit Chrome à partir de zéro, creusé à travers la source pour trouver tous les endroits où les demandes peuvent être annulés, et frappé de points d'arrêt sur eux pour déboguer. De mémoire, les seuls endroits où Chrome annuler une demande:

  • L'élément du DOM qui a provoqué la demande faite a été supprimé (c'est à dire une IMG est en cours de chargement, mais avant de la charge qui s'est passé, vous avez supprimé l'IMG nœud)
  • Vous avez fait quelque chose qui a fait de charger les données inutiles. (c'est à dire vous avez commencé le chargement d'une iframe, puis a changé la src ou remplacer le contenu)
  • Il y a beaucoup de demandes qui vont dans le même serveur, et un problème de réseau sur des demandes antérieures ont montré que les demandes ultérieures allaient pas travailler (DNS lookup d'erreur, etc)

Dans notre cas, nous avons enfin tracée à un cadre d'essayer d'ajouter du HTML dans une autre image, qui est arrivé avant l'image de destination, même chargé. Une fois que vous touchez le contenu d'une iframe, il ne peut plus charger la ressource (comment serait-il savoir où le mettre?) donc, il annule la demande.

80voto

user1669158 Points 11

status = cancelled peut arriver aussi sur les requêtes ajax sur les évènements JavaScript:

 <script>
  $("#call_ajax").on("click", function(event){
     $.ajax({
        ...    
     });
  });
</script>

<button id="call_ajax">call</button> 
 

L'événement envoie la demande avec succès, mais elle est annulée ensuite (mais traitée par le serveur). La raison en est que les éléments soumettent des formulaires sur les événements click, peu importe si vous faites des requêtes ajax sur le même événement click.

Pour empêcher l'annulation de la requête, JavaScript event.preventDefault (); doivent être appelés:

 <script>
  $("#call_ajax").on("click", function(event){
     event.preventDefault();
     $.ajax({
        ...    
     });
  });
</script>
 

16voto

James Kyburz Points 4352

Une autre chose à surveiller pourrait être l'extension AdBlock, ou les extensions en général.

Mais "beaucoup" de gens ont AdBlock ....

Pour exclure les extensions, ouvrez un nouvel onglet en mode incognito en vous assurant que "autoriser en incognito est désactivé" pour l'extension que vous voulez tester.

13voto

Justin Cloud Points 509

Vous voudrez peut-être consulter le "X-Frame-Options" balise d'en-tête. Si pour SAMEORIGIN ou de REFUSER ensuite l'iFrame d'insertion sera annulée par Chrome (et les autres navigateurs) par la spec.

Il est également à noter que certains navigateurs prennent en charge le PERMETTENT-DE décor, mais Chrome ne fonctionne pas.

Pour résoudre ce problème, vous devez supprimer le X-Frame-Options" balise d'en-tête. Cela pourrait vous exposer à des clickjacking attaques de sorte que vous aurez besoin de décider quels sont les risques et comment les atténuer.

6voto

Phil M Points 460

L'annulation de la demande qui m'est arrivé lors de la redirection entre sécurisé et non sécurisé pages sur différents domaines au sein d'une iframe. La redirection de la demande a montré dans les outils de dev comme "annulé" demande.

J'ai une page avec une iframe contenant un formulaire hébergé par ma passerelle de paiement. Lorsque le formulaire dans l'iframe a été soumis, la passerelle de paiement serait redirection vers une URL sur mon serveur. La redirection récemment cessé de travailler et a fini comme un "annulé" demande à la place.

Il semble que Chrome (j'ai été en utilisant Windows 7, Chrome 30.0.1599.101) n'est plus autorisé une redirection à l'intérieur de l'iframe pour aller à une page non sécurisée sur un domaine distinct. Pour la fixer, je viens de faire que toute redirigé demandes dans l'iframe ont toujours été envoyés pour sécuriser les Url.

Lorsque j'ai créé une simple page de test avec seulement un iframe, il y avait un avertissement dans la console (dont j'avais déjà oublié ou peut-être ne pas s'afficher):

[Blocked] The page at https://mydomain.com/Payment/EnterDetails ran insecure content from http://mydomain.com/Payment/Success

La redirection transformé en annulation de la demande en Chrome sur PC, Mac et Android. Je ne sais pas si c'est spécifique à mon site d'installation (SagePay Profil Bas) ou si quelque chose a changé dans Chrome.

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