Ошибка "Небезопасная ошибка JavaScript для доступа к фрейму с URL...", которая постоянно генерируется в инспекторе Chrome webkit

Chrome (или любой другой браузер веб-браузера) бросает тонну этих "небезопасных попыток JavaScript для доступа к фрейму с URL...", например, при работе с API Facebook.

Это не мешает реальной работе, но делает консоль javascript непригодной для использования.

Я хотел бы знать, есть ли способ подавить эти ошибки именно в консоли? Или, если есть другие решения, которые вы, ребята, можете придумать, я бы очень признателен.

Спасибо.

Ответ 1

Вы можете разрешить междоменные запросы во время тестирования, запустив chrome с опцией командной строки --disable-web-security. Вероятно, это должно избавиться от ошибки (и позволить FB следить за тестированием;)

Ответ 2

Это происходит, когда источник из другого домена загружается и пытается получить доступ к document.cookie. Это происходит с головными источниками (теги script), а также с документами iframe, которые по какой-либо причине пытаются получить доступ к document.cookie.

Ответ 3

В чем проблема?

Тонны сообщений об ошибках Unsafe JavaScript attempt to access frame with URL... в консоли Chrome JS.

Как @thechrisproject указывает, эти ошибки вызваны многими авторитетными сторонними api и виджетами, включая, но не ограничиваясь:

  • SDK для Facebook JS
  • Vimeo Iframe Вставить
  • Google Maps Iframe Вставить

Мое понимание о том, почему: (пожалуйста, поправьте меня, если я ошибаюсь)

Chrome имеет более строгие параметры безопасности и/или показывает больше таких ошибок, чем конкурирующие браузеры. Авторы API/widget/embed пытаются сделать что-то (кросс-домен/фрейм), которые не будут работать во всех браузерах (возможно, для их собственной отчетности/аналитики), но на самом деле не влияют на их виджет, (просто вызывает множество неприятных ошибок)

Быстрый ответ

НЕТ, вы не можете (просто) подавить эти ошибки в консоли Chrome.

Решения?

  • С этим справиться. Эти ошибки фактически не нарушают эти сторонние apis и виджеты, они просто затрудняют использование консоли
  • вы можете настроить консоль на запись только сообщений Warnings, Logs или Debug. Это скроет ВСЕ ошибки.
  • вы можете использовать другой браузер
  • Как @Dagg_Nabbit. указано, вы можете разрешить междоменные запросы, запустив chrome с опцией командной строки --disable-web-security. Больше информации здесь: Отключить такую ​​же политику происхождения в Chrome. Обратите внимание, что этот параметр негативно повлияет на безопасность вашего браузера. У меня есть 2 хром-ярлыка, поэтому я могу открыть его с помощью или без этого флага.

Ответ 4

Поскольку мы не можем обвинять людей из Google в создании такого безопасного браузера, я думаю, что лучшим решением будет использование решений на стороне сервера на Facebook (например, PHP SDK), это сэкономит вам много, много, много, много, много головной боли. Единственное преимущество, которое я вижу в использовании SDK javascript FB, - это всплывающее окно, которое вы можете сделать сами, используя javascript/jQuery.

Ответ 5

Эти ошибки могут быть сброшены, если при регистрации вашего приложения в Facebook у вас нет конечной косой черты в поле URL-адреса сайта. Другими словами, вам нужно " http://domain.com /" не " http://domain.com"

Вы можете проверить настройку URL-адреса сайта developers.facebook.com/apps Изменить настройки → Основные → URL-адрес сайта.