2013-05-20 58 views
3

更新:我們發現一個答案,並張貼以下,對於杜時刻抱歉..谷歌驅動器共享對話框錯誤 - 「X-框架 - 選項」到「SAMEORIGIN」

我收到以下錯誤當在Google Drive Javascript應用程序中打開共享對話框時。

Refused to display 'https://drive.google.com/share?id=.. 
    in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. 

我想這是因爲應用程序中打開URL設置爲啓動服務器,但後來我們重定向進行負載平衡的另一臺服務器。這些要求在這裏引用:Requirements for google drive Share file Dialog

由於性能原因,我們的負載均衡服務器使用不同的第三級域。因此,例如,內驅動器打開URL指向單一服務器:

https://app.domain.com/app 

此服務器然後重定向,以便執行下列操作之一來分配負載:

https://app01.domain.com/app 
https://app02.domain.com/app 
https://app03.domain.com/app 

我們需要分發因爲我們的應用程序具有資源密集型的實時後端組件。我希望我們能想到一種更好的方式來分發用戶跨服務器,但這是最好的,我們可以提出。

任何人都可以提出一個更好的分配方法,可以保留原產地嗎?或者是否有任何可能的方法來規避相同的原產地要求。能夠在應用程序中使用共享對話框真的很不錯。

順便說一下,Picker對話框工作得很好。但它確實在控制檯中出現錯誤,但是..

Unable to post message to https://docs.google.com.. 
    Recipient has origin https://app01.domain.com 

回答

1

我們找到了解決方法。我們將所有客戶端發送到靜態內容的主要URL,從加載的角度來看這並不是一個大問題。然後我們在多個服務器上分發後端服務。這可能會工作很長時間。

XMLHttpRequest對象要求我們增加一個CORS過濾器後端,但是這很簡單,我們可以控制它自己。

對不起,我打算離開問題,以防其他人解決問題。我不得不尋找一段時間來找出原因,因爲那裏有很多不好的建議。