3

更新: これに対する回答が見つかり、以下に投稿しました。

Google ドライブ 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

パフォーマンス上の理由から、負荷分散サーバーは別の第 3 レベル ドメインを使用しています。たとえば、ドライブ内の 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

回避策が見つかりました。すべてのクライアントを静的コンテンツのメイン URL に送信しますが、読み込みの観点からはそれほど大きな問題ではありません。次に、バックエンド サービスを複数のサーバーに分散しました。これはしばらくの間うまくいくかもしれません。

XMLHttpRequest オブジェクトでは、CORS フィルターをバックエンドに追加する必要がありましたが、それは簡単で、自分で制御できます。

お手数をおかけして申し訳ありません..他の人の問題を明確にするのに役立つ場合に備えて、質問を残しています。そこには悪いアドバイスがたくさんあるので、原因を突き止めるためにしばらく検索する必要がありました.

于 2013-05-20T22:52:39.377 に答える