私がホストしているWCFサービスから約4〜6 KBのデータを取得し、canvasタグ(HTML5)を使用してグラフを描画するJavaScriptウィジェットを作成しています。私が共有しているhtmlとJavaScriptをコピーして貼り付けることで、誰でもこのウィジェットを自分のWebサイトに埋め込むことができるようにしたいと思います。
問題:同一生成元ポリシーでは、ウィジェットのホストドメインから私のドメインのWCFサービスへのXHRリクエストは許可されません。つまり、ウィジェットを使用しているユーザーは、私のWCFサービスからデータを取得できません(すべてのリクエストが取得されます)応答で約4〜6kbのデータ)。
私はこのサイトで以前の議論を経て、次の可能な解決策を見つけました:
- JSONP(私のWCFサービスで使用できます)
- 非表示のIframe(両方のドメインを制御できないため不可能)
- window.postMessage(JavaScriptライブラリが古いブラウザ(IE6など)で動作するかどうかはわかりません)
- クロスオリジンリソースシェアリング(CORS)(IE6などの古いブラウザーを使用できるようにしたいので不可能)
- リバースプロキシ方式(ユーザーのWebサイトのサーバーを制御できないため不可能)
- easyXDM(可能な解決策になる可能性がありますが、私のWCFサービスでそれを使用する方法を調査する必要があります)
まず、可能なさまざまなアプローチについて私が行った簡単な分析が正しいことを皆さんに確認したいと思います。私は誰もが使用している優れたソリューションを見逃していません。私の分析が正しければ、長所について話し合いたいと思います。そしてこれらのアプローチの短所。
第二に、Facebook、Twitter、Googleのすべてがアプリを共有し(正確に私が共有したい方法で)、そうするためにこの問題を克服したことを知っています。この問題を解決しました。