“不安全的 JavaScript 尝试通过 URL 访问框架...”错误在 Chrome webkit 检查器中不断生成

例如,当使用 Facebook API 时,Chrome (或其他任何 webkit 浏览器)会抛出大量这样的“不安全的 JavaScript 尝试通过 URL 访问框架...”。

它不会干扰实际操作,但是它确实使得 javascript 控制台基本上不可用。

我想知道是否有办法在控制台中特别抑制这些错误?如果你们能想到其他解决办法,我会很感激的。

谢谢。

65508 次浏览

通过使用 --disable-web-security命令行选项运行 chrome,您可以在测试期间允许跨域请求。这可能会消除错误(并允许 FB 监视您的测试;)

既然我们不能责怪 Google 的人构建了这样一个安全的浏览器,我认为最好的解决方案是使用 Facebook 的服务器端解决方案(例如 PHP SDK) ,它将为你节省很多,很多,很多,很多,很多头痛的问题。在使用 FB javascript SDK 时,我看到的唯一优势是弹出登录,您可以使用 javascript/jQuery 自己完成。

当加载来自不同域的源并试图访问 document.cookie 时,就会发生这种情况。这种情况发生在 head source (script 标记)和 iframe 文档中,iframe 文档由于某种原因试图访问 document.cookie。

如果您在 Facebook 注册应用程序时,在 SiteURL 字段中没有前斜杠,则可能会抛出这些错误。换句话说,你需要“ http://domain.com/”而不是“ http://domain.com

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

有什么问题吗?

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

作为 @ chrisproject 指出,这些错误是由许多著名的第三方 API 和小部件造成的,包括但不限于:

  • Facebook JS SDK
  • 嵌入式
  • 谷歌地图图像嵌入

我对 为什么的理解: < sup > (如果我错了请纠正我)

与竞争对手的浏览器相比,Chrome 有更严格的安全设置和/或显示更多此类错误。API/widget/embed 作者试图做的事情(跨域/框架)并不适用于所有浏览器(可能适用于他们自己的报告/分析) ,但是如果不适用,实际上并不影响他们的 widget 的可用性(只会导致许多恼人的错误)

快速回答

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

解决方案?

  • 接受现实吧。这些错误实际上并没有破坏这些第三方 API 和 widget,它们只是让控制台更难使用
  • 您可以将控制台设置为只记录警告、日志或调试消息。这将隐藏所有错误。
  • 你可以用别的浏览器
  • 作为 @ Dagg _ Nabbit 指出,您可以通过使用 --disable-web-security命令行选项运行 chrome 来允许跨域请求。更多信息请点击: 在 Chrome 中禁用同源策略。请注意,此设置将对浏览器的安全性产生负面影响。我有2个铬快捷方式,所以我可以打开或没有这个标志。