Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa IIS7 Mengembalikan Ralat Kaedah 405 Tidak Dibenarkan Apabila Mendayakan CORS?

Mengapa IIS7 Mengembalikan Ralat Kaedah 405 Tidak Dibenarkan Apabila Mendayakan CORS?

Linda Hamilton
Linda Hamiltonasal
2024-10-28 19:52:021077semak imbas

Why Does IIS7 Return a 405 Method Not Allowed Error When Enabling CORS?

Mendayakan Perkongsian Sumber Silang Asal pada IIS7

Mendayakan Perkongsian Sumber Silang Asal (CORS) pada IIS7 adalah perlu untuk membenarkan permintaan sumber tak segerak untuk dibuat merentasi asal yang berbeza, mengatasi sekatan keselamatan penyemak imbas. Walau bagaimanapun, masalah boleh timbul apabila IIS7 mengembalikan ralat Kaedah 405 Tidak Dibenarkan sebelum respons 200 yang berjaya.

Menyelesaikan Ralat Tidak Dibenarkan Kaedah 405

Ralat 405 biasanya berlaku kerana IIS7 mengendalikan respons HTTP OPTIONS, yang mendahului permintaan sebenar, dan bukannya memajukannya ke aplikasi anda. Untuk membetulkan ini:

  1. Navigasi ke Pemetaan Pengendali tapak anda dalam IIS7.
  2. Cari dan klik dua kali entri "OPTIONSVerbHandler".
  3. Tukar "ProtocolSupportModule" kepada "IsapiHandler".
  4. Tetapkan laluan boleh laku kepada:
    %windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll.

Dengan perubahan ini, IIS7 akan memajukan HTTP kata kerja OPTIONS untuk aplikasi anda.

Penyelesaian Alternatif: Mengendalikan Kata Kerja OPTIONS dalam BeginRequest

Sebagai alternatif, anda boleh mengendalikan kata kerja HTTP OPTIONS secara manual dalam kaedah BeginRequest aplikasi anda:

<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>

Dengan melaksanakan salah satu pendekatan ini, anda boleh mendayakan CORS pada IIS7 dan menyelesaikan ralat 405 untuk memastikan permintaan silang asal berjaya.

Atas ialah kandungan terperinci Mengapa IIS7 Mengembalikan Ralat Kaedah 405 Tidak Dibenarkan Apabila Mendayakan CORS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn