0

私は3つのサーバーを持っています:

サーバーA:メインアプリケーションホスト

サーバーB:メインアプリケーションでopenScoialガジェットとして開く別のアプリケーションのホスト

サーバーC:サーバーB上のアプリケーションのOpenSocial仕様ファイルのホスト

サーバーAのアプリケーションにアクセスしましたが、一部のjavaScriptファイル関数からアクセスが拒否されたというエラーが表示されます。

クロスドメインの問題のようですが、どんな助けでも歓迎します。

4

1 に答える 1

0

ガジェットで何らかの認証を使用していますか? xml がアプリケーションとは別のサーバーにあるのはなぜですか? それらは別のドメインにもありますか?JavaScript を読み込むためにどのような方法を使用していますか? どの OpenSocial Container 実装を使用していますか? ロックされたドメインを使用していますか? これまでに何を試しましたか?

一般的なアドバイスや情報を提供することはできますが、少なくとも上記の質問に答えなければ、問題の内容を正確に理解できません。

OpenSocial ガジェットは iframe 内でレンダリングされ、そのドメインはそれらをレンダリングする OpenSocial コンテナーによって選択されます。ガジェット xml のドメインでレンダリングされることはほとんどありません (私が知っているケースはありません)。多くの場合、このドメインは単に親ページ/OpenSocial コンテナのドメインになります。ただし、ロックされたドメインが有効になっている場合は、ガジェットは別の一意のドメインでレンダリングされ、親ページから何かにアクセスできないようになります。

クロスドメイン ポリシーは xhr リクエストをブロックします。これが、通常 xhr で行うすべての処理に gadgets.io.makeRequest を使用する必要がある理由ですが、makeRequest にはある種の認証 (通常は oauth) が必要です。ガジェットのサーバー (この例ではサーバーの C と B)。クロス オリジン ポリシーの影響を受けない JSONP を使用して、JavaScript / データをロードすることは引き続き可能です。

于 2013-02-22T21:04:14.957 に答える