12

クロスドメイン リクエストがウェブサイト上にある場合、Google の API はどのようにしてクロスドメイン リクエストを Google に返すのでしょうか?

4

5 に答える 5

11

ドキュメントの head に script タグを動的に挿入することで、この問題を回避しています。このインジェクションを介して送信される JavaScript にはコールバック関数が含まれており、ページで実行されているスクリプトに、ロードしたこととペイロード (データ) を通知します。

その後、スクリプトは動的に挿入されたスクリプト タグを削除して続行できます。

于 2008-09-24T18:54:22.790 に答える
4

受け入れられた答えは間違っています。ベンは正しいです。以下は、 Google API JavaScript Clientを使用してページから引き出された実際の iframe ノードです。

<iframe name="oauth2relay678" id="oauth2relay678" 
        src="https://accounts.google.com/o/oauth2/postmessageRelay?
             parent=https%3A%2F%2Fwww.example.com.au#rpctoken=12345&amp;forcesecure=1" 
             style="width: 1px; height: 1px; position: absolute; left: -100px;">
</iframe>

このしくみの基本的な概要は、http: //ternarylabs.com/2011/03/27/secure-cross-domain-iframe-communication/にあります。最新のブラウザーでは HTML の postMessage を利用してコミュニケーションを実現し、古いブラウザーではきちんとした複数の iframe-urlhash-read+write-combination ハックを使用します。Ternary Labs は、基本的にすべてのブラウザーで postMessage を提供する、すべてのハッキーなものを抽象化するライブラリーを作成しました。

いつの日か、このライブラリの上に構築して、クロスドメイン REST API を簡素化する予定です...

編集: その日が来て、XDomain はここにあります - https://github.com/jpillora/xdomain

于 2013-03-02T02:27:34.003 に答える
1

私の知る限り、彼らはIFRAMEを使用しています。

于 2008-09-24T18:51:33.873 に答える
0

もう 1 つの可能性は、ここでwindow.namedojo フレームワークについて説明されているように、トランスポートを使用することです。

于 2008-09-25T03:22:43.693 に答える