3

更新:我们找到了一个答案并将其发布在下面,对不起,那一刻......

在 Google Drive Javascript 应用程序中打开共享对话框时出现以下错误。

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

我认为这是因为应用程序的 Open URL 设置为启动服务器,但随后我们重定向另一台服务器以实现负载平衡。此处引用了这些要求:Google drive 共享文件对话框的要求。

出于性能原因,我们的负载平衡服务器使用不同的 3 级域。例如,Drive 中的 Open URL 指向单个服务器:

https://app.domain.com/app

该服务器然后重定向到以下之一以分配负载:

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

我们需要分配负载,因为我们的应用程序有一个资源密集型的实时后端组件。我希望我们能想出一种更好的方法来跨服务器分配用户,但这是我们能想到的最好的方法。

任何人都可以建议一种更好的分配方法来保留原产地吗?或者有没有可能的方法来规避这个相同的来源要求。能够在应用程序中使用共享对话框真是太好了。

顺便说一句,选择器对话框工作得很好。但是,它确实会在控制台中引发错误..

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

1 回答 1

1

We found a workaround. We send all clients to the main URL for static content, which is not as big a concern from a loading perspective. Then we distributed the back end services across multiple servers. This may work for a good while.

The XMLHttpRequest object required that we add a CORS filter to the back end, but that was easy and we can control it ourselves.

Sorry for the bother..I am leaving question in case it helps clarify issue for others. I had to search for a while to figure out the cause, because there is a lot of bad advice out there.

于 2013-05-20T22:52:39.377 回答