2010-06-09 11 views
128

Chrome (ou tout autre navigateur webkit) jette une tonne de ces "Tenter JavaScript dangereux d'accéder à l'image avec URL ..." lorsque vous travaillez avec l'API Facebook par exemple."Erreur JavaScript tentative d'accès à l'image avec URL ..." erreur générée en permanence dans Chrome webkit inspector

Il n'interfère pas avec le fonctionnement réel, mais rend la console javascript fondamentalement 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.

+1

Actuellement, j'utilise la solution de contournement consistant simplement à définir l'onglet de console pour afficher uniquement les journaux. Je suis à la recherche d'une solution qui me permet de suivre les erreurs (mais pas celle-ci). –

+0

il serait bon de fournir un exemple de la façon dont vous utilisez l'API. il y a beaucoup de raisons pour lesquelles cela pourrait arriver. – Kinlan

+0

Je sais ce que vous voulez dire, mais je suis sûr que cela arrive avec n'importe quelle intégration de facebook. Par exemple, ouvrez votre console webkit js sur le site de ce Domino (en production) http://www.pizzaholdouts.com –

Répondre

19

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

+0

hmm c'est intrigant ... y a-t-il un moyen de définir l'option de cette façon en dehors de la ligne de commande? J'ai essayé ceci à partir de la ligne de commande: '/ Applications/Google \ Chrome.app/Contents/MacOS/Google \ Chrome --disable-web-security' et cela a semblé fonctionner! mais il a dit qu'il n'était pas en mesure de charger mon profil ... une idée de la façon de définir ce drapeau à partir de l'application, ou le définir par défaut à cela? –

+4

comme une mise à jour, j'utilise maintenant chrome exclusivement, et j'aimerais toujours connaître la réponse à cette –

+2

'open -a '/ Applications/Google Chrome Canary.app' --args --disable-web-security' – sandstrom

3

Puisque nous ne pouvons pas blâmer les gens de Google pour la construction d'un navigateur aussi sûr, je pense que la meilleure solution est d'utiliser le serveur de Facebook solutions côté-côté (par exemple PHP SDK), il vous fera économiser beaucoup, beaucoup, beaucoup, beaucoup, beaucoup de maux de tête. Le seul avantage que je vois dans l'utilisation du FB javascript SDK est la connexion popup que vous pouvez faire vous-même en utilisant javascript/jQuery.

+6

Pourquoi l'utilisation du SDK PHP (ou d'un autre SDK côté serveur) économise beaucoup de maux de tête? –

+0

@steve: Le simple fait que Chrome bloque la requête non sécurisée répond beaucoup à l'insécurité du traitement côté client. –

+2

La pollution IMHO de la console JS ne devrait pas être une considération primordiale pour décider s'il faut mettre le côté serveur côté serveur ou côté client. –

4

Cela se produit lorsqu'une source provenant d'un domaine différent est chargée et tente d'accéder au document.cookie. Cela arrive aussi bien avec les sources head (tags de script) qu'avec les documents iframe qui essaient d'accéder au document.cookie pour une raison quelconque.

2

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

Vous pouvez vérifier le paramètre d'URL du site de developers.facebook.com/apps Modifier les paramètres -> Basic -> URL du site.

+0

Pourriez-vous s'il vous plaît clarifier votre phrase pour moi? – itinance

+1

Pense qu'il veut dire à l'intérieur http://developers.facebook.com/apps –

4

Quel est le problème?

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

Comme @thechrisproject points out, ces erreurs sont causées par de nombreux de bonne réputation 3e partie de api et widgets, y compris mais sans s'y limiter:

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

Ma compréhension sur le pourquoi:(s'il vous plaît me corriger si je me trompe)

Chrome a plus strictes paramètres de sécurité et/ou des erreurs montre plus que ces navigateurs concurrents.API/widget/embed auteurs tentent de faire des choses (inter-domaine/frame) qui ne fonctionneront pas dans tous les navigateurs (probablement pour leurs propres rapports/analyses) mais qui n'affectent pas réellement la possibilité d'utilisation de leur widget si ce n'est pas le cas travail (fait juste beaucoup d'erreurs gênantes)

réponse rapide

NO, vous ne pouvez pas (juste) supprimer ces erreurs dans la console chromée.

Solutions?

  • Traiter avec. Ces erreurs ne brisent pas réellement ces API et widgets tiers, ils rendent la console beaucoup plus difficile à utiliser
  • Vous pouvez configurer la console pour consigner uniquement les messages Avertissements, Journaux ou Déboguer. Cela masquera TOUTES les erreurs.
  • vous pouvez utiliser un autre navigateur
  • Comme @Dagg_Nabbit. pointed out, vous pouvez autoriser les requêtes inter-domaines en exécutant chrome avec l'option de ligne de commande --disable-web-security. Plus d'informations ici: Disable same origin policy in Chrome. Notez que ce paramètre affectera négativement la sécurité de votre navigateur. J'ai 2 raccourcis chromés donc je peux l'ouvrir avec ou sans ce drapeau.