Tout d'abord, je pense que c'est plus ou moins le même problème que " Undefined "a annexé au hasard dans 1% des URL demandées sur mon site Web depuis le 12 juin 2012 mais depuis que je suis un nouvel utilisateur et que je ne peux pas commenter ce poste et Il n'a pas encore de solution, je ne peux que demander une nouvelle question. P>
Depuis le 12 juin 2012 14:22 EET (le moment où la première erreur est arrivée), nous éprouvons des problèmes très étranges:
Moins de 1% des demandes à notre site ont la chaîne «non définie» annexée à la fin ou à remplacer une partie valide de l'URL et le référent est une URL complètement valide sur le site. Par exemple, nous obtenons une demande de http://example.com/foo/undefined < / B> avec référent http://example.com/foo/bar b > ou une demande à http://example.com/undefinefinde b> avec référent http://example.com/ b> (la page d'accueil). Ces URL proviennent de diverses adresses IP client, diverses fournisseurs de services Internet et le navigateur sont le plus souvent chrome, mais également avec IE et Firefox 3.5. Il semble que quelque chose réécrit l'URL à quelque chose d'invalide, en gardant l'URL d'origine dans la balise de référent.
Nous ne pouvons pas reproduire ce problème. P>
Nous expertitons également un autre problème mentionné dans les commentaires de la source source: Nous recevons des demandes d'URL du formulaire http://example.com/cache/xxx où xxx ressemble à 32 caractères MD5 String (EXMPE: 3D453E96E68CC01CED7920AE77356078 ou BBC80A4244CAF556FDCAA9FB60231AF7). Nous n'avons pas la chaîne "cache" dans aucune de nos URL valides. Une et la même chaîne XXX peut venir de Divers IPS pendant plusieurs jours, voire des semaines. Et toutes ces demandes étranges proviennent d'un navigateur chromé. Ce problème n'a pas commencé le 2012-06-12. Cela arrive au moins depuis le début de l'année mais est beaucoup plus rare que le premier. Nous ne pouvons pas reproduire ce problème aussi. P>
Notre site Web est sur IIS, le côté client est fortement basé sur JavaScript et nous utilisons le cadre de prototype (pas JQuery). p>
6 Réponses :
Ce que je peux supposer à partir de la situation donnée, c'est que, puisque le site Web est fortement basé sur ... Il y a beaucoup d'appels Ajax. Et je suppose plus probablement que ce sont des demandes Ajax avec le paramètre non défini généré dans le code JavaScript. P>
Pour le débogage Objectif (en mode de développement) Vous devez valider les URL AJAX avant de définir les demandes AJAX et chaque fois que vous ne trouvez indéfini la détournez sur la page factice et essayez de saisir autant de détails que possible. P>
Cette chose se produit surtout lorsque les demandes asynchrones dépendent des autres demandes asynchrones. Sans regarder le code ou l'exemple, il est très difficile de suggérer quoi que ce soit, mais j'espère mettre une certaine capacité de débogage dans votre application et saisir de plus en plus de détails pour identifier le problème. P>
Quelque part où je reçois le sentiment que ce n'est pas le gros problème, juste un point dans votre lourde application JavaScript que vous avez manquée ou est passée inaperçue. P>
Postez quelques détails supplémentaires afin que nous ici à Stackoverflow puisse vous aider. P>
semble être un code 3RD-Parti que vous pouvez utiliser (par exemple une bibliothèque, un cadre ou un fichier JS externe comme Google Analytics). P>
Une alternative plus colorée est une vulnérabilité d'injection sur votre site utilisé par les attaquants et génère parfois ces URL. Je suppose que ce code injecté compte également en tant que code tiers. P>
S'il y a une erreur et personne ne sait où il se trouve, vous devrez déboguer votre code à la recherche de déclarations qui pourraient être le démarreur de l'erreur. De nos jours, nous avons de bons outils qui nous aident dans cette tâche. I> p> Si JavaScript est utilisé pour définir ou modifier les emplacements d'image, il arrive parfois qu'un serait une requête JavaScript et, en raison d'un bogue, au lieu de demander une URL absolue, il demande "indéfini". p> li>
ol> Conclusion: B> Le problème, je crois est causé par JS. P> Installation et Exécution b> p> Vous devez télécharger Firebug Addon , si vous essayez de Firefox. Ensuite, appuyez sur F12 et vous verrez une fenêtre avec quelques onglets. Vous devrez activer certains onglets: comme 'console', "script", "net". L'activation est fournie en les ouvrant, en lisant les informations du panel et en cliquant sur le lien Activer. P> LI>
pour chrome, juste vérifier si Outil de développeurs de Chrome est déjà installé. Puis appuyez sur F12. P> LI>
ul> Débogage b> p> dans Firefox, accédez à une page bugée avec Firebug ouvert et le panneau NET activé. Dans le panneau NET, il y aura quelques options: "Clear", "persist", "tout", "html", etc. Assurez-vous que l'option en chrome, accédez à une page bugée avec CDT, courte pour les outils de développeur chromé, ouvert et le panneau de réseau sélectionné. Comme Firebug, assurez-vous que l'option ne peut toujours pas le voir b> p> PS.: Si le panneau est sale, cliquez sur le bouton Effacer ou l'icône pour nettoyer les demandes du panneau i> P> Si vous soumettez la page et que vous voyez une demande échouée, sortez vraiment rapidement, mais puis perdez-la car la page suivante se charge, activez la persistance en cliquant sur 'Persist' sur l'icône Firebug ou "Conserver le journal" en haut à gauche de le panneau net ou dans le coin inférieur gauche du panneau de réseau. Une fois que cela fait, et cela devrait, considérer ce que vous avez fait pour que cela se produise. Voyez si vous pouvez y arriver à nouveau. Une fois que vous avez compris quelle interaction de l'utilisateur se produit, plongez dans ce code et commencez à chercher des choses qui font des demandes invalides et n'oubliez jamais de voir l'en-tête de la demande. Vous pouvez utiliser l'onglet Script pour configurer les points d'arrêt dans votre JavaScript et les passer à travers. Enquêter sur les gestionnaires d'événements effectués via $ (ELLEMMENT) .Bind / clic / focus / etc. ou des attributs d'événements de l'ancienne école comme Onclick = "" / Onfocus = "" et etc. P> L> L> L>
Si vous ne pouvez pas déclencher une mauvaise demande, alors tout ce qui est causé, il n'est pas déclenché par vos tests. Essayez d'utiliser plus de choses. Le point est que vous devriez pouvoir faire de la demande d'une manière ou d'une autre. Vous ne savez pas encore. Il doit apparaître dans le panneau NET. La seule fois que ce n'est pas le cas, quand vous ne faites pas tout ce qui le déclenche. P> li>
ul> Ce que nous recherchons dans votre code b> p> ps.: Quelqu'un peut être un objet Conclusion: B> Il n'y a pas de déjeuner gratuit ici pour savoir ce qui se passe exactement. Cependant, utiliser les méthodes de DEBUG, vous devriez être capable de découvrir, de vous rapprocher ou de comprendre le problème. P> h2> Hypothèses h3>
non défini code> fait son chemin dans l'URI. P> LI>
Débogage sur Firefox et Chrome H3>
{} code>, un tableau
[] code> ou l'un des types de navigateur interne. Le fait est que une propriété sera accessible qui n'existe pas. I> p>
Et si ce n'est que du bogue de navigateur / plate-forme? p>
Je vois le / indéfini 404s sur un site Web Drupal 7 et également sur une mini-site de Vanilla HTML + CSS (sans JS Que ce soit) connecté au Drupal One pour desservir un contenu spécifique. P>
On dirait que c'est presque toujours un problème chrome / safari, avec quelques iex ici et là, comme celui-ci: Mozilla / 4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0 .50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Centre de média PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E) P>
à partir d'une recherche de journal rapide, elle n'arrive jamais avec Firefox. p>
La demande / indéfinie vient à la fin du rendu de la page, après que CSS et images ont été demandées. Et ça ** ne se reproduit pas pour une deuxième page qui est presque identique et réutilisant la mise en page, les CSS et les images du premier. P>
Mes deux cents ... P>
éventuellement, cache / xxx strong> Les demandes sont un bogue d'extension chrome / chrome (mais pas corrigé): p>
http://code.google.com/p/chromium/ Problèmes / détails? id = 132059 p>
Basé sur ce POST , I INVERS-FIGNAGEZ LE "Complitly "Plugin / malware chromé, et a constaté que cette extension injecte une fonctionnalité" Autocomplecte améliorée "qui jetait des demandes" non définies "sur chaque site contenant un champ de texte d'entrée avec nom ou identifiant de" recherche "," Q "et beaucoup d'autres .
J'ai trouvé également que le fichier enable.js (un des fichiers de manière complitaire) vérifiez une variable globale appelée «suggérermeMeyes_loaded» pour voir si elle est déjà chargée (comme un singleton). Donc, la définition de cette variable sur true désactive le plugin. P>
TL: DR; STRT> P> Pour désactiver les demandes de logiciel malveillant et arrêter les demandes "non définies", appliquez ceci à Chaque page avec un champ de recherche sur votre site: P> <script type="text/javascript">
window.suggestmeyes_loaded = true;
</script>
Cela fonctionne pour moi! Il résout le problème "indéfini". Après avoir appliqué le code que vous avez suggéré, nous ne recevons plus de telles demandes. Merci beaucoup!
Avoir une prime sur ces questions est d'accord, mais il n'ya pas assez d'informations disponibles et, donc incapable de pivoter, indiquez la question et donner la solution. Donc, veuillez fournir plus d'informations et quelques extraits de code afin que nous puissions vous aider avec la question à laquelle vous êtes confronté.
Pouvez-vous simplement mettre à jour votre question avec la liste des scripts tiers que vous utilisez? J'ai le même problème sur mon site Web, je n'ai pas de JS sauf scripts tiers. J'en utilise ceux-ci: Analytics, AdSense, Twitter, Google+, Facebook et AddThis Button.
Nous utilisons Google Analytics, Gemius, Facebook, OpenX Banner Codes et le prototype JavaScript Cadre. Nous avons effectivement désactivé un moment où la fonctionnalité reliée à Facebook il y a quelque temps, mais cela n'a pas aidé
Dupliqué possible de " indéfini "annexé au hasard dans 1% des URL demandées sur mon site Web depuis le 12 juin 2012