Chrome webkit inspector中不断产生“不安全的JavaScript尝试访问带有URL的帧…”错误

Chrome(或任何其他webkit浏览器)在使用Facebook API时会抛出大量这样的“不安全的JavaScript尝试访问带有URL的帧…”。

它不会干扰实际操作,但它确实使JavaScript控制台基本无法使用。

我想知道是否有一种方法来抑制这些错误,特别是在控制台? 或者,如果有其他解决scheme,你们可以想到,我真的很感激它。

谢谢。

您可以在testing期间通过使用--disable-web-security命令行选项运行chrome来允许跨域请求。 这应该可以摆脱错误(并允许FB窥视你的testing;)

当来自不同域的源文件被加载并尝试访问document.cookie时,会发生这种情况。 它发生在头源(脚本标签),以及iframe文件,由于某种原因试图访问document.cookie。

有什么问题?

Unsafe JavaScript attempt to access frame with URL... Chrome JS控制台中的Unsafe JavaScript attempt to access frame with URL...错误消息。

正如@thechrisproject指出的那样 ,这些错误是由许多有信誉的第三方api和小部件引起的,包括但不限于:

  • Facebook JS SDK
  • Vimeo Iframeembedded
  • Google地图Iframeembedded

我的理解为什么 🙁 请纠正我,如果我错了)

Chrome浏览器具有更严格的安全设置,并且/或者显示比竞争对手更多的错误。 API / Widget /embedded式作者试图做一些不能在所有浏览器中工作的东西(跨域/框架)(可能是为了他们自己的报告/分析),但是如果它们没有实际影响它们的小部件的可用性工作(只会导致很多烦人的错误)

快速回答

不,你不能( 只是 )在Chrome控制台中抑制这些错误。

解决scheme?

  • 处理它。 这些错误实际上并没有打破这些第三方API和小部件,他们只是使控制台更难以使用
  • 您可以将控制台设置为只logging警告,日志或debugging消息。 这将隐藏所有的错误。
  • 您可以使用其他浏览器
  • 作为@Dagg_Nabbit。 指出 ,您可以通过使用--disable-web-security命令行选项运行chrome来允许跨域请求。 更多信息在这里: 在Chrome中禁用相同的原产地政策 。 请注意,此设置会对浏览器的安全性产生负面影响。 我有2个铬快捷键,所以我可以用这个标志或没有这个标志打开它。

既然我们不能责怪Google的人构build这样一个安全的浏览器,我认为最好的解决scheme是使用Facebook的服务器端解决scheme(例如PHP SDK),它会为您节省很多,很多,很多,很多,很多头痛。 我在使用FB JavaScript SDK中看到的唯一优点是可以使用javascript / jQuery自己完成的popup式login。

如果在Facebook上注册您的应用程序时,您在站点URL字段中没有尾随的正斜杠,则可能会引发这些错误。 换句话说,你需要“ http://domain.com / ”而不是“ http://domain.com

您可以从developers.facebook.com/apps编辑设置 – >基本 – >网站URL来检查网站URL设置。