我正在使用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))返回; 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'));
答案 0 :(得分:3)
这是因为协议不匹配。
您正尝试在http页面中创建https框架。
由于您的浏览器禁用了混合内容,因此您会看到该错误。
您可以通过命令行arg在Google Chrome上启用混合内容。
chrome.exe --allow-running-insecure-content
答案 1 :(得分:0)
你好Ian你试过按https://localhost/appname
并再次开始通话吗?如果您正在运行XAMPP,LAMP,MAMP之类的东西,您的默认站点应绑定到端口443(https),希望允许您的请求协议匹配。如果您仍然遇到相同的问题,您可能需要考虑从实际的Web服务器(面向WWW)尝试此操作并查看问题是否仍然存在。另外Facebook上没有设置你需要启用以允许将localhost用于他们的API(在这里黑暗中摇摆)?