3

Javascript で WCF サービスへのクロスサイト呼び出しを行うことは可能ですか?

POSTでもGETでも構いません。

しかし、最近のブラウザーでは、POST または GET を使用したクロスサイト呼び出しが許可されていないと聞いています。

これを回避してWCF Serviceを呼び出すにはどうすればよいですか?

4

4 に答える 4

5

ブラウザのクロスサイト スクリプティング ブロッカーを回避するためにできることはあまりありません。これらのブロッカーは、含まれるスクリプトまたはページをロードしたドメイン以外のドメインで XMLHTTPRequest が発生するのを阻止します。

つまり、JavaScript を使用して、クロスサイト URL である src を参照する新しいエントリを DOM に書き込みます。すべての RPC メソッド引数をこの「スクリプト」に渡します。スクリプトは、実行される JavaScript を返し、成功または失敗を知らせます。

この方法で POST を実行する方法はありません。src URL は GET でなければならないため、その方法で引数を渡すことができます。WCF に「GET のみ」のアクセス方法があるかどうかはわかりません。また、ブラウザーはリモート タグの結果が有効な JavaScript オブジェクトであることを期待するため、WCF サービスもそれに準拠していることを確認する必要があります。そうしないと、JavaScript エラーが発生します。

クロスサイト スクリプティングを回避するもう 1 つの一般的な方法は、リクエストのプロキシを作成することです。つまり、example.com でホストされているスクリプトからドメイン test.com にアクセスする場合は、適切な方法でリクエストを test.com にプロキシする URL を example.com に作成します。

あなたの例では、WCF に独自のクロスサイト スクリプティングの制限がないことを前提として、プロキシが正しい答えである可能性があります。

于 2009-02-17T06:04:50.750 に答える