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

DDD
リリース: 2024-10-26 19:58:30
オリジナル
967 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!