ホームページ  >  記事  >  ウェブフロントエンド  >  IIS7 でクロスオリジン リソース共有 (CORS) を有効にする方法は?

IIS7 でクロスオリジン リソース共有 (CORS) を有効にする方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 04:39:021033ブラウズ

How to Enable Cross-Origin Resource Sharing (CORS) on IIS7?

IIS7 でクロスオリジン リソース共有 (CORS) を有効にする

クロスオリジン リソース共有 (CORS) により、異なるオリジンで Web アプリケーションを実行できるようになります相互に HTTP リクエストを送信します。ただし、デフォルトでは、他のドメインへの XHR リクエストは許可されません。

ターゲット ドメインで CORS を有効にする

ターゲット ドメインで CORS を有効にするには、次のカスタムを追加します。ヘッダーを web.config ファイルに追加します:

<code class="xml"><?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" /
        <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" /
        <add name="Access-Control-Allow-Headers" value="Content-Type" /
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration></code>

IIS7 構成

ターゲット ドメインで CORS を有効にした後でも、405 Method Not allowed 応答が発生する場合があります。これは、IIS7 がアプリケーションの代わりに HTTP OPTIONS 応答を処理していることが原因である可能性があります。

これを解決するには:

  1. IIS7 でサイトのハンドラー マッピングに移動します。
  2. 「OPTIONSVerbHandler」マッピングを見つけます。
  3. 「ProtocolSupportModule」を「IsapiHandler」に変更します。
  4. 実行可能ファイルを「%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll」に設定します。

または、コードで HTTP OPTIONS に応答します

BeginRequest メソッドで HTTP OPTIONS 動詞に応答することもできます:

<code class="csharp">    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

        if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
        {
            // Pre-flight OPTIONS call
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
            HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
            HttpContext.Current.Response.End();
        }
    }</code>

以上がIIS7 でクロスオリジン リソース共有 (CORS) を有効にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。