質問

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

それがPOSTまたはGETだ場合、私は気にしない。

しかし、私は、これらの日、ブラウザはクロスサイトがPOSTまたはGETのいずれかで呼び出すことはできません。

聞きました

どのように私はこれを回避することができますし、まだ呼び出すのWCFサービス

役に立ちましたか?

解決

あなたはブラウザのクロスサイトスクリプティングの遮断を回避するために行うことができます全体の多くはありません。これらの遮断薬は、任意のドメインが、含まれるスクリプトまたはページを読み込ま一つに起きてからのXMLHttpRequestのを止めます。

これは1つの一般的に使用さの回避策があり、言った:JavaScriptを使用は、クロスサイトURLであるSRCを参照するDOMに新しいエントリを書くこと。あなたは、あなたの成功または失敗を言って、実行されるいくつかのJavaScriptを返します。この「スクリプト」に、すべてのRPCメソッドの引数を渡します。

あなたがそのように引数を渡すことができるように

この方法でPOSTを実行する方法はありません、SRCのURLは、GETでなければなりません。私は、WCFは、アクセスの「GETのみ」の方法を持っているかはわかりません。ブラウザは、リモートタグの結果が有効なJavaScriptオブジェクトであることを期待しますので、あなたはそうしないと、JavaScriptエラーを得るでしょう、あなたのWCFサービスも同様ということに従うことを確認する必要があります。

クロスサイトスクリプティングを回避する別の一般的な方法は、あなたの要求のプロキシを書くことです。あなたがexample.comでホストされているスクリプトからtest.comドメインにアクセスしたい場合は、他の言葉では、その後、適切な方法でtest.comにオーバー要求をプロキシexample.comにいくつかのURLを作ります。

あなたの例では、プロキシは、WCFは、それ自身のクロスサイトスクリプティングの制限を持っていないと仮定して、可能性が正しい答えです。

他のヒント

あなたは万が一のjQueryを使用していますか? jQueryのは、「JSONP」を使用してクロスドメインJSON要求をサポートしています。あなたは、GETリクエストに制限されますが、私はそれを試してみたのだが、うまく動作します!これは、作業を取得するためにも非常に簡単です。

「クロスドメインgetJSON(JSONPを使って)」詳細については、このページを参照してください: http://docs.jquery.com/Release:jQuery_1.2/Ajax

そして、ここではJSONPにいくつかの背景があります: http://bob.pythonmac.org/archives/2005 / 12月5日/リモートJSON-JSONP /

私はそれが行く方法を知ってみましょう!

新しいW3C勧告はアクセスを経由して、信頼できる当事者間のクロスサイトリクエストを許可するように標準化されていますクロスサイト用のコントロールがの仕様を要求します。

これは、適切なアクセス制御HTTPヘッダを提供するサーバと理解することができ、かつ、そのようなヘッダに作用するブラウザが必要です。

リモートホストは、それはあなたのドメインを好きと言うと、ブラウザが、これは何を意味するのか理解している場合、

要するに、あなたは関係なく、同一生成元ポリシーのホストに対してのXMLHttpRequestsを実行することができます。

現在、非常に少数のブラウザでは、この機能をサポートしています。 IE8は明らかにし(私はそれをテストしていない)とFirefox 3.1は、(私は広範囲にこれをテストしている)ん。私は他のブラウザは非常に素早く追随することを期待します。

あなたは早くても2012年まで、互換性のあるブラウザの十分な採用を期待すべきではありません。

これは問題の究極のソリューションです。欠点は、それが主流の用途に使用することができる前に数年を待っています。

これは、あなたが完全なあなたが使用しているブラウザを判別することができますし、正しいヘッダを発行する複数のサーバを設定することができる場所イントラネット用として、制御環境内での使用のためである場合は、それが完璧に動作します。

ベンの答えに拡大するために...私はJSONPがマイクロソフトから、この例のようなコードを使用してjQueryのからの呼び出しをサポートするために、私たちのWCFサービスを拡張しました

http://msdn.microsoft.com/en-us/library /cc716898.aspxする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top