IIS7 でのクロスオリジン リソース共有の有効化
非同期リソース要求を許可するには、IIS7 でクロスオリジン リソース共有 (CORS) を有効にする必要があります。ブラウザのセキュリティ制限を克服して、さまざまなオリジン間で作成されます。ただし、IIS7 が 200 応答に成功する前に 405 メソッドが許可されていないエラーを返すと、問題が発生する可能性があります。
405 メソッドが許可されていないエラーの解決
405 エラーは通常、この問題は、IIS7 がアプリケーションに転送するのではなく、実際の要求に先立って HTTP OPTIONS 応答を処理するために発生します。これを修正するには:
これらの変更により、IIS7 は HTTP を転送します。 OPTIONS 動詞をアプリケーションに追加します。
代替解決策: BeginRequest で OPTIONS 動詞を処理する
あるいは、アプリケーションの BeginRequest メソッドで HTTP OPTIONS 動詞を手動で処理することもできます。
<code class="c#">protected void Application_BeginRequest(object sender, EventArgs e) { HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*"); if (HttpContext.Current.Request.HttpMethod == "OPTIONS") { // Handle HTTP OPTIONS pre-flight request 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 を有効にし、405 エラーを解決して、クロスオリジン リクエストを確実に成功させることができます。
以上がCORS を有効にすると、IIS7 が 405 Method Not allowed エラーを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。