2014-07-10 49 views
7

我正在嘗試將G + API與my website集成,並遇到問題。如果您在加載頁面時看控制檯,您將看到以下錯誤:Google+ API「400(Bad Request)」和「拒絕在框架中顯示......因爲它將'X-Frame-Options'設置爲'SAMEORIGIN'。」錯誤

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()控制檯,沒有任何反應。我假設這個問題與頁面加載時的上述錯誤有關。

什麼原因導致了這個問題,我該如何解決?

UPDATE:

我創建了一個空白頁上我的網站上使用此準系統代碼:

<!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> 

我想有和沒有認證的meta標籤(上面沒有顯示),負載上述網頁並且仍然在收到錯誤。

看起來像這樣是Google的問題,因爲我只是使用最基本的準系統示例代碼,它不起作用。

回答

9

好吧,顯然Google+只是有一個brainfart或東西,因爲解決方案只是爲了清除我的餅乾!

我試過在另一臺電腦上使用我的網站,並且Google+ API工作正常(沒有錯誤),所以我嘗試清除桌面上的cookies並注意,它開始工作!

+9

有什麼好笑的是,每隔幾個月我就會得到這個錯誤,谷歌它,並找到我自己的答案! :-) – Nate

0

我發現的是,如果客戶已經打開了很長一段時間的鉻,他們會得到這個錯誤。一旦他們關閉鉻並重新打開,他們沒有任何問題。我的解決方案是從服務器下載腳本,將其上傳到我們的服務器,並將其作爲備份下載。

相關問題