WebAPI プロジェクトを 作成HttpRequest
または呼び出すメイン MVC4 アプリケーション内にシン プロキシ レイヤーを作成する必要があります。WebClient
したがって、あなたのJavascriptは次のようなものを呼び出します
http://samedomain/proxy/getproduct/29
ProxyController の GetProduct アクションは、実際の WebAPI URL に対して HttpRequest 呼び出しを行う必要があります。
http://otherdomain/api/Product/29
そしてJsonResult
、それを呼び出し元の Javascript に戻し、そこで作業することができます。JavaScript とプロキシ レイヤーが同じドメインにあるため、オリジン アクセス ポリシーの問題に直面することはありません。
編集: 両方とも localhost にあるがポートが異なる場合でも、ブラウザーに関する限り、それは別のドメインとしてカウントされます。localhost:41928 から localhost:58128 への呼び出しには、このセキュリティ ポリシーが適用されます。これを回避しようとしている場合は、MVC WebAPI をメイン プロジェクトに配置する必要があります。2 つのプロジェクトを結合するには、新しい MVC WebAPI プロジェクトを作成します。これには、サービス ルートと通常の MVC ルートが付属しています。
本当に「オープン」な WebAPI サービスが必要な場合は、このガイドに従って CORS を有効にすることができます。IIS7 では、これを web.config ファイルに追加します。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>