例如,在使用Facebook API时,Chrome(或其他任何Webkit浏览器)会抛出大量此类“不安全的JavaScript尝试访问带有URL的框架...”。
它不会干扰实际操作,但确实会使javascript控制台基本无法使用。
我想知道是否有一种方法可以专门在控制台中抑制这些错误?或者,如果您还有其他解决方案,我将不胜感激。
谢谢。
例如,在使用Facebook API时,Chrome(或其他任何Webkit浏览器)会抛出大量此类“不安全的JavaScript尝试访问带有URL的框架...”。
它不会干扰实际操作,但确实会使javascript控制台基本无法使用。
我想知道是否有一种方法可以专门在控制台中抑制这些错误?或者,如果您还有其他解决方案,我将不胜感激。
谢谢。
Answers:
您可以通过使用--disable-web-security
命令行选项运行chrome来在测试期间允许跨域请求。这可能应该消除错误(并允许FB监视您的测试;)
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security
它似乎起作用了!但它说它无法加载我的个人资料...任何想法如何从应用程序内设置该标志,或将其设置为默认值吗?
open -a '/Applications/Google Chrome Canary.app' --args --disable-web-security
有什么问题?
Unsafe JavaScript attempt to access frame with URL...
Chrome JS控制台中有大量错误消息。
正如@thechrisproject指出的那样,这些错误是由许多知名的第三方API和小部件引起的,包括但不限于:
我对原因的理解:( 如果我错了,请纠正我)
与竞争性浏览器相比,Chrome具有更严格的安全设置和/或显示更多此类错误。API /小工具/嵌入式作者试图做的事情(跨域/框架)在所有浏览器中都不起作用(可能是针对他们自己的报告/分析),但如果不这样做,实际上并不会影响其小部件的可用性工作(只会引起很多烦人的错误)
快速回答
不,您不能(只是)在chrome控制台中抑制这些错误。
解决方案?
--disable-web-security
命令行选项运行chrome来允许跨域请求。此处更多信息:在Chrome中禁用同一来源策略。请注意,此设置会对浏览器的安全性产生负面影响。我有2个chrome快捷方式,因此无论有没有此标志,我都可以打开它。由于我们不能责怪Google的人构建如此安全的浏览器,因此我认为最好的解决方案是使用Facebook的服务器端解决方案(例如PHP SDK),它将为您节省很多很多,很头疼 我在使用FB javascript SDK时看到的唯一优势是弹出式登录名,您可以使用javascript / jQuery来完成此操作。
如果在Facebook上注册应用程序时,如果“网站URL”字段中没有尾随正斜杠,则可能引发这些错误。换句话说,您需要“ http://domain.com / ”而不是“ http://domain.com ”
您可以从developers.facebook.com/apps编辑设置->基本->网站URL 检查网站URL设置。