3

私は VS 2010 IDE を使用して WCF RESTful サービスに取り組んでいます。調査中に、サイトがホストするドメインと同じドメインに API がデプロイされると言われました。

API ホスティング: www.site.com/API/services.svc (API は仮想フォルダー)

サイトホスティング: www.site.com

同じドメインにデプロイする予定のクライアント側の ajax を使用して、同じ API が Web サイトで使用されるため、クロスドメイン/オリジン アクセスの問題は発生しません。

しかし、その後、同じ API が iPad、iPhone、スマート TV アプリによって消費されるという変更があります。これは、API へのトラフィックが膨大になるためです。API を www.api.com という別のドメインにデプロイする予定でした。 /services.svc すべてのデバイス アプリに対して適切に応答していますが、クライアント側からのクロス ドメイン アクセスであるため、Web サイトで問題が発生しています。検索後、Global.asax ファイル Application_BeginRequest() に以下のコードを実装することにより、API でこのクロス ドメイン ポリシーを破るコードを見つけました。Chrome、Firefox、および Safari ブラウザーでは適切に応答しますが、IE では応答しません。

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "x-requested-with");
if (HttpContext.Current.Request.HttpMethod.ToUpper() == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("X-DR-Request-Terminated-By", "CrossDomainXhr-OPTIONS");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}

この問題を解決するのを手伝ってください...

前もって感謝します...

サティッシュ

4

1 に答える 1