1

私はプロジェクトの論文を書いていますが、プロジェクト全体に疑問を投げかける可能性のある問題に出くわしました。したがって、これ以上のアクションを実行する前に、3 重に確認したいと思います。

URL1 に JavaScript ファイルがあります。簡単にするために、javascript コードは URL2 から情報を取得します。

どれだけ試してもうまくいかないので、Google 検索を行ったところ、同一生成元ポリシーが原因である可能性があることがわかりました。

もう一度お聞きしますが、これは不可能ですか?

4

1 に答える 1

0

これは完全に可能ですが、いくつかの制限があります。

URL2 が JSONP 方式を提供している場合、URL1 から URL2 の情報にアクセスできます。JSON が指定された関数 (この場合は mycallback) に配置される js ファイル (url2/information?id=123&callback=mycallback) をロードするスクリプト タグを生成します。URL2 のスクリプトは次のようになります。

mycallback({"json":"information"});

したがって、URL1 には mycallback 関数を定義する必要があり、URL2 から情報を取得します。

別のアプローチは、クロスドメインに対応できるXMLHttpRequest Level2を利用することです。

もう 1 つは、onmessage/postmessage を介して通信し、URL1 のページ内に URL2 を iframe で表示することです。これは Cross-Origin にも当てはまります。

ハッシュのように、同じ生成元ポリシーに穴をあける他のテクニックがあります (ただし、上記のテクニックに比べて非常に制限されています)。

于 2012-10-09T09:53:16.797 に答える