Facebook 喜欢按钮错误 - 被阻止的框架

Posted

技术标签:

【中文标题】Facebook 喜欢按钮错误 - 被阻止的框架【英文标题】:Facebook like button error - blocked frame 【发布时间】:2013-05-21 17:38:11 【问题描述】:

我正在使用 jQuery 创建动态的 Facebook“赞”按钮。但是,我遇到了一个反复出现的错误。

我创建按钮的jQuery是:

$('#fbLike').html('<fb:like href="'+url+'" send="false" layout="button_count"  show_faces="true" />');
FB.XFBML.parse(document.getElementById('fbLike'));

但是,我收到以下错误:

Blocked a frame with origin "https://www.facebook.com" from accessing
a frame with origin "http://localhost:8888".  The frame requesting
access has a protocol of "https", the frame being accessed has a
protocol of "http". Protocols must match.

有什么想法吗?

编辑

(函数(d,s,id) var js, fjs = d.getElementsByTagName(s)[0]; 如果(d.getElementById(id))返回; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); (document, 'script', 'facebook-jssdk'));

【问题讨论】:

如果自己使用http,请不要使用https 连接 Facebook 时如何不使用 https?我将编辑上面的内容以显示我所有的 Facebook 相关代码。 将本地服务器配置为localhost...等运行 它对我来说也是如此......我认为这是一个相当普遍的问题。 @ronnyfm 你愿意详细说明吗?我现在将我的站点网址设置为http://localhost/appname,但我仍然收到这些错误。你会改变什么? 【参考方案1】:

发生这种情况是因为协议不匹配。

您正在尝试在 http 页面中创建 https 框架。

由于您的浏览器禁用了混合内容,您会看到该错误。

您可以通过命令行 arg 在 google chrome 上启用混合内容。

chrome.exe --allow-running-insecure-content

【讨论】:

在 chrome 中禁用它并不能解决问题,尽管它只是为开发人员掩盖了它。通过在安全页面上使用安全调用来实际解决问题可能是一个更好的主意。【参考方案2】:

嗨,Ian,您尝试过点击https://localhost/appname 并再次拨打电话吗?如果您正在运行 XAMPP、LAMP、MAMP 之类的东西,您的默认站点应该绑定到端口 443 (https),​​希望允许您的请求协议匹配。如果您仍然遇到同样的问题,您可能需要考虑从实际的 Web 服务器(面向 WWW)尝试此操作,并查看问题是否仍然存在。此外,您是否需要启用 Facebook 端的任何设置以允许将 localhost 用于他们的 API(在此处在黑暗中摇摆)?

【讨论】:

以上是关于Facebook 喜欢按钮错误 - 被阻止的框架的主要内容,如果未能解决你的问题,请参考以下文章

如何检测 Facebook 喜欢的按钮被点击?

如何解决这个 #606 应用程序在 facebook 广告网络中被阻止错误?

Google + 登录按钮被阻止的框架

“喜欢它”后弹出窗口中的内容错误

修改facebook喜欢按钮

喜欢 Facebook 页面按钮