6

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

HTTP ハンドラーまたは別の Web サービス (Orchard 側) を使用して、他のドメインの Web サービスを呼び出すことができると読みましたが、MVC や Orchard についてこれを行うのに十分な知識がありません。これらの 1 つを自分の Orchard Web アプリケーションに追加するにはどうすればよいですか?

4

1 に答える 1

11

クライアント側コード内からのクロスドメイン呼び出しは、すべての主要なブラウザーで禁止されています。次のいずれかを実行できます

  1. CORSを使用します。Access-Control-Allow-OriginWeb サービス応答のヘッダーをに設定しhttp://your-caller-domain.comて、Web サイト ドメインからの要求を許可します
  2. JSONP手法を使用する
  3. クラスを使用してサーバー側で呼び出しを実行し、応答を返すカスタムプロキシ APIを (プレーンなASP.NET MVC コントローラーまたはWebAPIコントローラーを使用して) アプリケーション内に作成します。WebClient

オプションは、最良のものから最悪のものへと並べられています。CORS は、IE8/9 (を介して部分的にサポートされているXDomainRequest) 以前を除き、ほとんどのブラウザーでサポートされています。ただし、これには回避策があります。

最初の 2 つは Web サービス側の変更を伴うことに注意してください。それができない場合は、オプション 3. だけが残ります。

于 2013-10-03T21:08:38.300 に答える