Qu'est-ce qui causerait l'annulation d'une page? J'ai une capture d'écran des outils de développement Chrome.
Cela arrive souvent mais pas à chaque fois. Il semble qu'une fois d'autres ressources mises en cache, une actualisation de la page chargera le fichier LeftPane.aspx. Et ce qui est vraiment étrange, c'est que cela ne se produit que dans Google Chrome, pas dans Internet Explorer 8. Avez-vous une idée de la raison pour laquelle Chrome annulerait une demande?
Nous nous sommes battus contre un problème similaire dans lequel Chrome annulait les demandes de chargement d'éléments dans des cadres ou des iframes, mais seulement par intermittence et cela semblait dépendre de l'ordinateur et/ou de la vitesse de la connexion Internet.
Ces informations sont périmées depuis quelques mois, mais j’ai construit Chromium à partir de rien, fouillé dans la source pour trouver tous les endroits où les demandes pouvaient être annulées et claqué des points d’arrêt sur chacun d’eux pour les corriger. De mémoire, les seuls endroits où Chrome annulera une demande:
Dans notre cas, nous avons finalement trouvé un cadre qui essayait d’ajouter du HTML à un autre cadre, ce qui se produisait parfois avant même que le cadre de destination ne soit chargé. Une fois que vous avez touché le contenu d'un iframe, il ne peut plus y charger la ressource (comment peut-il savoir où le placer?), De sorte qu'il annule la demande.
status = annulé peut se produire également sur les demandes 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 avec succès la demande, mais est annulé ensuite (mais traité par le serveur). La raison en est que les éléments soumettent des formulaires à des événements de clic, peu importe si vous faites des demandes ajax sur le même événement de clic.
Pour empêcher l'annulation de la demande, JavaScript event.preventDefault (); doivent être appelés:
<script>
$("#call_ajax").on("click", function(event){
event.preventDefault();
$.ajax({
...
});
});
</script>
Une autre chose à rechercher pourrait être l'extension AdBlock, ou les extensions en général.
Mais "beaucoup" de gens ont AdBlock ....
Pour exclure une ou plusieurs extensions, ouvrez un nouvel onglet dans incognito en vous assurant que "l’autorisation d’incognito est désactivée" pour les extensions que vous souhaitez tester.
Vous voudrez peut-être vérifier la balise d'en-tête "X-Frame-Options". Si sa valeur est SAMEORIGIN ou DENY, l'insertion de iFrame sera annulée par Chrome (et les autres navigateurs) conformément au spec .
Notez également que certains navigateurs prennent en charge le paramètre ALLOW-FROM, mais que Chrome ne le fait pas.
Pour résoudre ce problème, vous devez supprimer la balise d'en-tête "X-Frame-Options". Cela pourrait vous laisser vulnérable aux attaques de détournement de clic . Vous devrez donc déterminer quels sont les risques et savoir comment les atténuer.
NB: Assurez-vous de ne pas avoir aucun élément de formulaire enveloppant .
J'ai eu un problème similaire où mon bouton avec onclick = {} était encapsulé dans un élément de formulaire. En cliquant sur le bouton, le formulaire est également soumis, ce qui a tout gâché ...
Cette réponse ne sera probablement jamais lue par personne, mais je me suis dit pourquoi ne pas l'écrire :)
Voici ce qui m'est arrivé: le serveur renvoyait un en-tête malformé "Emplacement" pour une redirection 302 . Chrome n'a pas réussi à me le dire, bien sûr. J'ai ouvert la page dans firefox et j'ai tout de suite découvert le problème . C'est bien d'avoir plusieurs outils :)
Dans mon cas, j’ai trouvé qu’il s’agissait de paramètres de délai d'expiration global jquery, un délai d'expiration global de configuration du plug-in jquery de 500 ms, de sorte que, lorsque la demande dépasse 500 ms, chrome annule la demande.
Une demande annulée m'est arrivée lors d'une redirection entre des pages sécurisées et non sécurisées sur des domaines distincts au sein d'une iframe. La demande redirigée apparaît dans les outils de développement en tant que demande "annulée".
J'ai une page avec un iframe contenant un formulaire hébergé par ma passerelle de paiement. Lorsque le formulaire de l'iframe était soumis, la passerelle de paiement était redirigée vers une URL sur mon serveur. La redirection a récemment cessé de fonctionner et a abouti à une requête "annulée".
Il semble que Chrome (j'utilisais Windows 7 Chrome 30.0.1599.101) n'autorisait plus une redirection dans l'iframe pour accéder à une page non sécurisée située sur un domaine distinct. Pour résoudre ce problème, je me suis assuré que toutes les demandes redirigées dans l'iframe étaient toujours envoyées à des URL sécurisées.
Lorsque j'ai créé une page de test plus simple avec uniquement un iframe, il y avait un avertissement dans la console (que j'avais précédemment manqué ou peut-être ne suis pas apparu):
[Blocked] The page at https://mydomain.com/Payment/EnterDetails ran insecure content from http://mydomain.com/Payment/Success
La redirection s'est transformée en une demande annulée dans Chrome sur PC, Mac et Android. Je ne sais pas si cela est spécifique à la configuration de mon site Web (SagePay Low Profile) ou si quelque chose a changé dans Chrome.
Un autre endroit où nous avons rencontré le statut (canceled)
est dans une mauvaise configuration de certificat TLS particulier. Si un site tel que https://www.example.com
est mal configuré, de sorte que le certificat n'inclut pas le www.
mais est valide pour https://example.com
, chrome annulera cette demande et sera automatiquement redirigé vers ce dernier. C'est pas le cas pour Firefox.
Exemple actuellement valide: https://www.pthree.org/
Chrome Version 33.0.1750.154 m annule systématiquement le chargement des images si j'utilise le Mobile Emulation pointé vers mon hôte local; spécifiquement avec l'usurpation de l'agent utilisateur sur (par opposition aux paramètres d'écran).
Lorsque je désactive l'usurpation d'identité de User Agent; les demandes d'images ne sont pas annulées, je vois les images.
Je ne comprends toujours pas pourquoi; dans le premier cas, lorsque la demande est annulée, les en-têtes de demande (ATTENTION: les en-têtes provisoires sont affichés) ont uniquement
Dans ce dernier cas, tous ceux-ci, ainsi que d’autres comme:
Haussement d'épaules
J'ai eu exactement la même chose avec deux fichiers CSS qui ont été stockés dans un autre dossier en dehors de mon dossier css principal. J'utilise Expression Engine et j'ai constaté que le problème se trouvait dans les règles de mon fichier htaccess. Je viens d'ajouter le dossier à l'une de mes conditions et cela a été corrigé. Voici un exemple:
RewriteCond %{REQUEST_URI} !(images|css|js|new_folder|favicon.ico)
Donc, il pourrait être utile de vérifier votre fichier htaccess pour tout conflit potentiel
Pour mon cas, j’avais une ancre avec click event comme
<a href="" onclick="somemethod($index, hour, $event)">
À l'intérieur d'un événement de clic, j'ai eu un appel réseau, Chrome annulant la demande. L'ancre a href
avec ""
signifie, il recharge la page et le même temps qu'il a l'événement click avec l'appel réseau qui est annulé. Chaque fois que je remplace la href
par vide comme
<a href="javascript:void(0)" onclick="somemethod($index, hour, $event)">
Le problème est parti!
J'ai eu cette erreur dans Chrome lorsque j'ai redirigé via JavaScript:
<script>
window.location.href = "devhost:88/somepage";
</script>
Comme vous voyez j'ai oublié le 'http: //' . Après l'avoir ajouté, cela a fonctionné.
J'ai intégré tous les types de polices, ainsi que woff , woff2 , ttf lorsque j'intègre une police Web dans une feuille de style. Récemment, j'ai remarqué que Chrome annule la demande à ttf et woff lorsque woff2 est présent. J'utilise actuellement la version 66.0.3359.181 de Chrome, mais je ne sais pas quand Chrome a commencé à annuler des types de police supplémentaires.
Voici un autre cas de requête annulée par chrome, que je viens de rencontrer et qui n’est couverte par aucune des réponses.
En un mot
Le certificat auto-signé n’est pas fiable sur mon téléphone Android.
Détails
Nous sommes en phase de développement/débogage. L'URL pointe vers un hôte auto-signé. Le code est comme:
location.href = 'https://some.Host.com/some/path'
Chrome a simplement annulé la demande en silence, ne laissant aucun indice au débutant en développement Web comme moi pour résoudre le problème. Une fois que j'ai téléchargé et installé le certificat à l'aide du téléphone Android, le problème a disparu.
Nous avons eu ce problème avec la balise <button>
dans le formulaire, qui était censé envoyer une requête ajax à partir de js. Mais cette requête a été annulée, à cause du navigateur, qui envoie le formulaire automatiquement à chaque clic sur button
à l'intérieur du formulaire.
Donc, si vous voulez vraiment utiliser button
au lieu de div
ou span
régulier sur la page, et que vous voulez envoyer un formulaire js, vous devez configurer un écouteur avec la fonction preventDefault
.
par exemple.
$('button').on('click', function(e){
e.preventDefault();
//do ajax
$.ajax({
...
});
})
C'était aussi simple qu'un chemin incorrect pour moi. Je suggérerais que la première étape du débogage serait de voir si vous pouvez charger le fichier indépendamment de ajax etc.
Une des raisons pourrait être que XMLHttpRequest.abort () a été appelé quelque part dans le code. Dans ce cas, la demande aura le statut cancelled
dans le Chrome. Outils de développement onglet Réseau.
Dans mon cas, cela a commencé après la mise à jour du chrome 76.
En raison d'un problème dans mon code JS, window.location a été mis à jour plusieurs fois, ce qui a entraîné l'annulation de la requête précédente. Même si le problème existait auparavant, chrome a commencé à annuler la demande après la mise à jour vers la version 76.
Les demandes ont peut-être été bloquées par un plugin de protection de suivi.
En peut cela aide n'importe qui j'ai rencontré le statut annulé quand j'ai omis le retour faux; dans le formulaire soumettre. Cela a provoqué le suivi immédiat de l'envoi ajax par l'action d'envoi, qui a remplacé la page en cours. Le code est présenté ci-dessous, avec le retour important faux à la fin.
$('form').submit(function() {
$.validator.unobtrusive.parse($('form'));
var data = $('form').serialize();
data.__RequestVerificationToken = $('input[name=__RequestVerificationToken]').val();
if ($('form').valid()) {
$.ajax({
url: this.action,
type: 'POST',
data: data,
success: submitSuccess,
fail: submitFailed
});
}
return false; //needed to stop default form submit action
});
J'espère que ça aide quelqu'un.
Dans mon cas, le code permettant d'afficher la fenêtre du client de messagerie entraînait l'arrêt du chargement des images dans Chrome:
document.location.href = mailToLink;
le déplacer dans $ (window) .load (function () {...}) au lieu de $ (function () {...}) a aidé.
Pour moi, le statut "annulé" était dû au fait que le fichier n'existait pas. Étrange pourquoi chrome ne montre pas 404
.
m'est arrivé pareil en appelant un. fichier js avec $. ajax, et faire une demande ajax, ce que j'ai fait était d'appeler normalement.
Cela m'est arrivé lors du chargement de 300 images en tant qu'images d'arrière-plan. Je suppose qu'une fois que le premier a expiré, il a annulé tout le reste ou atteint le nombre maximal de demandes simultanées. besoin de mettre en œuvre un 5 à la fois
Pour tous ceux qui viennent de LoopbackJS et essaient d'utiliser la méthode de flux personnalisée telle que fournie dans leur exemple de graphique. Je recevais cette erreur en utilisant un PersistedModel
, le passage à un Model
de base a résolu mon problème d'annulation du statut eventsource
.
Encore une fois, ceci est spécifiquement pour l'api de bouclage. Et comme il s’agit d’une excellente réponse sur Google, j’ai pensé que jetterais cela dans le mélange de réponses.
J'avais affronté le même problème, quelque part au fond de notre code, nous avions ce pseudocode:
onload d'iframe soumettre un formulaire
Après 2 secondes, retirez l'iframe
ainsi, lorsque le serveur met plus de 2 secondes à répondre, l'iframe dans lequel il écrivait la réponse a été supprimé, mais la réponse devait encore être écrite, mais il n'y avait aucun iframe à écrire, ainsi chrome a annulé la demande, donc pour éviter cela, je me suis assuré que l’iframe n’est supprimé que lorsque la réponse est finie, ou vous pouvez remplacer la cible par "_blank" . L’une des raisons est donc: lorsque la ressource dans mon cas) que vous écrivez quelque chose dans, est supprimé ou supprimé avant que vous arrêtez d'écrire, la demande sera annulée