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

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

我创建按钮的jQuery是:

$('#fbLike').html('<fb:like href="'+url+'" send="false" layout="button_count" width="80" 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,但我仍然收到这些错误。你会改变什么?

标签: jquery facebook


【解决方案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(在此处在黑暗中摇摆)?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    相关资源
    最近更新 更多