2013-05-20 35 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过滤器后端,但是这很简单,我们可以控制它自己。

对不起,我打算离开问题,以防其他人解决问题。我不得不寻找一段时间来找出原因,因为那里有很多不好的建议。