web-dev-qa-db-fra.com

"Une tentative incorrecte de JavaScript pour accéder au cadre avec l'URL ..." est générée en continu dans Chrome webkit inspecteur

Chrome (ou tout autre navigateur Webkit) lance une tonne de ces "tentatives JavaScript non sécurisées pour accéder au cadre avec une URL ..." lors de l'utilisation de l'API Facebook, par exemple.

Cela n'interfère pas avec le fonctionnement réel, mais rend la console javascript pratiquement inutilisable.

Je voudrais savoir s'il existe un moyen de supprimer ces erreurs spécifiquement dans la console? Ou s'il y a d'autres solutions auxquelles vous pouvez penser, je l'apprécierais vraiment.

Merci.

128
Neil Sarkar

Vous pouvez autoriser les requêtes interdomaines pendant les tests en exécutant chrome avec le --disable-web-security option de ligne de commande. Cela devrait probablement vous débarrasser de l'erreur (et permettre à FB d'espionner vos tests;)

19
Dagg Nabbit

Cela se produit lorsqu'une source d'un autre domaine est chargée et tente d'accéder au document.cookie. Cela se produit aussi bien avec les sources principales (balises de script) qu'avec les documents iframe qui tentent d'accéder au document.cookie pour une raison quelconque.

4
Celli

Quel est le problème?

Beaucoup de Unsafe JavaScript attempt to access frame with URL... messages d’erreur dans la console Chrome JS.

Comme @ signale @ thechrisproject , ces erreurs sont causées par de nombreux api et widgets tiers réputés, notamment:

  • Le SDK Facebook JS
  • Vimeo Iframe Intégré
  • Google Maps Iframe Intégrer

Ma compréhension du pourquoi:  (Corrigez-moi si j'ai tort, s'il-vous plait)

Chrome a des paramètres de sécurité plus stricts et/ou affiche plus de telles erreurs que les navigateurs concurrents. Les auteurs d'API/widget/embed tentent de faire des choses (cross-domain/frame) qui ne fonctionneront pas dans tous les navigateurs (probablement pour leurs propres rapports/analyses) mais qui n'affectent pas réellement l'utilisation de leur widget si ce n'est pas le cas. travail (cause beaucoup d'erreurs gênantes)

Réponse rapide

NO, vous ne pouvez pas ( seulement) supprimer ces erreurs dans la console chrome).

Solutions?

  • Traitez-le. Ces erreurs ne cassent pas les API et les widgets tiers, elles rendent simplement la console beaucoup plus difficile à utiliser.
  • vous pouvez configurer la console pour ne consigner que les messages d'avertissement, les journaux ou les messages de débogage. Cela cachera TOUTES les erreurs.
  • vous pouvez utiliser un autre navigateur
  • Comme @ Dagg_Nabbit. A souligné , vous pouvez autoriser les requêtes entre domaines en exécutant chrome avec le --disable-web-security option de ligne de commande. Plus d'informations ici: Désactiver la même règle d'origine dans Chrome . Notez que ce paramètre aura un impact négatif sur la sécurité de votre navigateur. J'ai 2 chrome raccourcis pour que je puisse l'ouvrir avec ou sans cet indicateur.
4
Zach Lysobey

Puisque nous ne pouvons pas reprocher à Google d'avoir construit un navigateur aussi sûr, la meilleure solution consiste à utiliser les solutions côté serveur de Facebook (par exemple PHP SDK), cela vous épargnera Beaucoup, beaucoup, beaucoup, beaucoup, beaucoup, beaucoup de maux de tête.Le seul avantage que je vois dans l’utilisation du SDK javascript du FB est l’ouverture de session contextuelle que vous pouvez créer vous-même en utilisant javascript/jQuery.

3

Ces erreurs peuvent être générées si, lorsque vous enregistrez votre application auprès de Facebook, vous ne disposez pas de barre oblique de fin dans le champ URL du site. En d'autres termes, vous avez besoin de " http://domain.com/" pas " http://domain.com "

Vous pouvez vérifier le paramètre URL du site à partir de developers.facebook.com/apps = Modifier les paramètres -> De base -> URL du site.

2
Rob H