2011-02-05 9 views
1

私が主催するWCFサービスから約4〜6KBのデータを取得し、キャンバスタグ(HTML5)を使用してグラフを描画するJavaScriptウィジェットを作成しています。私は、誰かが自分のウェブサイトにこのウィジェットを埋め込むことができるようにしたいと思います。getXDMまたはJSONPで、同じ起点ポリシーを回避するために使用します。

問題:同一の起点ポリシー。ウィジェットのホストドメインから自分のドメインのWCFサービスへのXHR要求が許可されません。つまり、ウィジェットを使用しているすべてのユーザーがWCFサービスからデータを取得できませんすべてのリクエストは約4〜6kbのデータを取得します)。

私はこのサイトで以前discussionsを経て、次の可能な解決策を発見した:

  1. JSONP(私のWCFサービスで使用することができる)などができない
  2. 隠しIフレームを(私は両方のドメインを制御することはできません)
  3. window.postMessage(JavaScriptライブラリが古いブラウザ(IE6)で動作させることができるかどうかわからない)
  4. クロスソースリソース共有(CORS)(私は古いIE6などの古いブラウザを利用したいと思っていません)
  5. リバースプロキシの方法(ユーザーのウェブサイトのサーバーを制御できないため不可)
  6. easyXDM(可能な解決策であることが、私のWCFサービスとそれを使用する方法を模索する必要がありますすることができます)

まず、私は可能性の異なるアプローチを私によって行わ簡単な分析が正しいことをあなたたちに確認したいと思います誰もが使っている素晴らしい解決策を見逃すことはありません。私の分析が正しければ、これらのアプローチの賛否両論についてお話したいと思います。

私は、Facebook、Twitter、Googleのすべてが自分のアプリを共有していることを知っています。これを行うにはこの問題を克服しました。彼らがこの問題をどのように解決したかについての詳細。

+0

easyXDMはこのシナリオに簡単に適合できます。xhr/CORSの例を見てください。しかし、あなたが書いていることについては、私はおそらくJSONPの方がコストが低いために行くでしょう。しかし、あなたがウィジェットを拡張しようとしているなら、easyXDMは間違いなく道のりです - あなたが言及するサイトはeasyXDMが容易になる同じパターンに従います(TwitterでもeasyXDMを使用します)。 –

+0

これを調べたところ、リストを見てみる価値があります。そして、leeebの答えがprob JSONPの間にないと述べています。それまたはeasyXDM。 –

答えて

0

それはあなたのウィジェットがライブラリを含む、であるために、それは許容だどのように大規模な

  • に基づいて判断する必要があるものです。
  • サービスをポーリングする頻度、または1回限りのイベントかどうか。
  • フルブラウザとの互換性がどれくらい重要なのですか。

具体的な使用例については、JSONPをお勧めします。これは、ウィジェットを非常に小さく保つ、良いクロスブラウザのソリューションであり、適度なデータ要件を処理することができます。

Googleなどは、ストリームのようなソケットがクライアントとサーバーの間で保持される「コメット」型のソリューションを使用します。ブラウザリソースを奪うので、これをウィジェットに使用すべきではありません。

関連する問題