2013-10-03 1 views
6

HTMLウィジェット内からWebサービスクロスドメインを呼び出そうとしています。これはうまくいかないようです。それは同じドメインの下で素晴らしい仕事をした。 Orchard内の別のドメインのソフトウェアにログインするためのログインページを作成しようとしています。 Webサービスは、ユーザーの資格情報を検証し、ユーザー認証を生成するブール値を返します。Orchard CMSでJSからのクロスドメインWebサービスコールを処理する方法

HTTPハンドラまたは他のWebサービス(Orchard側)を使用して他のドメインのWebサービスを呼び出すことができますが、これを行うにはMVCまたはOrchardにはあまり慣れていません。オーチャードのWebアプリケーションにこれらを追加するにはどうしたらいいですか?

答えて

11

クライアント側のコードからのクロスドメインコールは、すべての主要なブラウザではno-noです。

  1. CORSを使用してください。リクエストはあなたのウェブサイトのドメイン
  2. 使用アプリケーション内のカスタムプロキシAPIを作成JSONP技術
  3. から発信できるように、Webサービス応答でhttp://your-caller-domain.comからAccess-Control-Allow-Originヘッダーを設定(プレーン使用してASP.NET MVC controllerまたはWebAPI 1)を実行しますサーバー側でWebClientクラスを使用して呼び出し、応答を返します。

オプションは、最善から最悪の順に並べられています。 CORSは、ほとんどのブラウザでサポートされています(IE8/9(部分的にはXDomainRequest経由でサポートされています)およびそれ以前のブラウザをサポートしています。しかしこれには回避策があります。

最初の2つはWebサービス側の変更を伴います。できない場合は、残りの3つだけです。

+1

注:CORSはIE8/9で 'XDomainRequest'を使って部分的にサポートしています。 –

+0

@RayNicholusはい、回避策があると言いました。明示的に指摘してくれてありがとう - それに応じて答えを更新しました。 –

関連する問題