我正在使用jQuery来创建动态的Facebook“Like”按钮 . 但是我收到的错误只是一遍又一遍地重复 .
我创建按钮的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);}(document,'script','facebook-jssdk'));
2 回答
这是因为协议不匹配 .
您正尝试在http页面中创建https框架 .
由于您的浏览器禁用了混合内容,因此您会看到该错误 .
您可以通过命令行arg在Google Chrome上启用混合内容 .
你好Ian你试过按
https://localhost/appname
并再次运行呼叫?如果您正在运行XAMPP,LAMP,MAMP之类的东西,您的默认站点应绑定到端口443(https),希望允许您的请求协议匹配 . 如果您仍然遇到相同的问题,您可能需要考虑从实际的Web服务器(面向WWW)尝试此操作并查看问题是否仍然存在 . 另外Facebook上没有设置你需要允许使用localhost到他们的API(在这里黑暗中摇摆)?