ホームページ  >  記事  >  ウェブフロントエンド  >  IIS7 で CORS を有効にすると 405 Method Not allowed 応答が返されるのはなぜですか?

IIS7 で CORS を有効にすると 405 Method Not allowed 応答が返されるのはなぜですか?

DDD
DDDオリジナル
2024-10-26 19:58:30968ブラウズ

Why Am I Getting a 405 Method Not Allowed Response When Enabling CORS on IIS7?

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

IIS7 で CORS を有効にすることは、特に予期しない問題が発生した場合には困難な作業になる可能性があります。 200 応答の前の 405 応答などの動作。この記事は、この問題に光を当て、効果的な解決策を提供することを目的としています。

405 応答への対処

405 Method Not allowed 応答は、IIS7 が HTTP OPTIONS をインターセプトするときに発生する可能性があります。アプリケーションの代わりにリクエストしてください。これを解決するには:

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

代替解決策: BeginRequest での OPTIONS 動詞の処理

上記の手順で問題が解決しない場合は、BeginRequest メソッドで HTTP OPTIONS 動詞を次のように処理できます。

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();
    }
}

以上がIIS7 で CORS を有効にすると 405 Method Not allowed 応答が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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