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.

有任何想法吗?

  • 编辑

    (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id ; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(文档, '脚本', 'facebook-jssdk') );
4

2 回答 2

3

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

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

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

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

chrome.exe --allow-running-insecure-content
于 2013-08-08T10:15:57.913 回答
0

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

于 2013-07-02T06:03:30.550 回答