我在 facebook.com 页面中遇到了这个奇怪的错误,其中 AJAX 加载部分(或者你称之为 facebook 使用的技术)没有加载(例如聊天、通知等)。
当我启动开发人员的控制台时,它给了我这个 JavaScript 错误:
Unsafe JavaScript attempt to access frame with URL
https://www.facebook.com/ai.php[*] from frame with URL
https://www.facebook.com/.
Domains, protocols and ports must match.
* 剥离了相当长的 base64 式部分 - 我认为那是登录数据,所以我不会发布它。
我试着用谷歌搜索它,我遇到了几个类似的问题,所以我又挖了一些不是为了重复发布,而是在他们通过某种应用程序使用 facebook 的 API 时抛出的其他错误。我不这样做,我只是使用 Chrome 20.0.1132.47 (Mac) 访问 facebook.com 页面。
该错误在其他帖子中被解释为 Chrome(显然还有 Safari)的一项安全措施,以防止框架内的某些 cookie 保存在框架外。防止 XSS 等等。
我找到的帖子:
Facebook gives "Unsafe JavaScript attempt to access frame with URL" error in Chrome
Unsafe JavaScript attempt to access a frame when using secure browsing on Facebook
tl;博士:
Chrome 20 (mac) 中的 facebook 调用通常只在 js API 调用时给出错误(针对 xss 的安全措施)
最佳答案
如果协议(protocol)不匹配,这是一个常见错误。如果您使用 HTTPS 访问页面,请确保您的代码具有正确的 HTTPS 包含的 JavaScript/CSS/图像等。确保使用 HTTPS 加载 channel.html
文件(或使其成为独立于协议(protocol))。
关于javascript - Chrome(不在应用程序中)- facebook 错误不安全的 JavaScript 尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713645/