我正试图将G+ API与我的网站集成,我有一个问题。如果在加载页面时查看控制台,您将看到以下错误:
GET https://accounts.google.com/o/oauth2/postmessageRelay?parent=http%3A%2F%2Fwww.pricewombat.com 400 (Bad Request) cb=gapi.loaded_0:436
Refused to display 'https://accounts.google.com/o/oauth2/postmessageRelay?parent=http%3A%2F%2Fwww.pricewombat.com#rpctoken=356505585&forcesecure=1' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
我只是使用谷歌网站上给出的示例代码:
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js?onload=googlePlusOnloadCallback';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
如果我在控制台中运行gapi.auth.signIn()
,什么也没有发生。我认为这个问题与页面加载时的上述错误有关。
是什么导致这个问题,我如何解决它?
更新:
我在我的网站上创建了一个空白页面,使用这个基本代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'http://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</body>
</html>
我试着加载上面的页面有和没有身份验证元标签(上面没有显示),我仍然得到错误。
似乎这个有是一个问题在谷歌的结束,因为我只是使用最基本的barebones示例代码,它不工作。
好吧,显然Google+只是有一个大脑放屁或什么,因为解决方案是简单地清除我的cookies!
我试着在另一台电脑上使用我的网站,Google+ API工作得很好(没有错误),所以我试着清除我桌面上的cookie,你看,它开始工作了!
我发现的是,如果客户端打开了chrome很长一段时间,他们会得到这个错误。一旦他们关闭浏览器并重新打开,他们就不会遇到任何问题。我的解决方案是从服务器下载脚本,将其上传到我们的服务器,并将其作为备份下载。