Rumah > pembangunan bahagian belakang > C++ > Mengapa jQuery AJAX Saya Memanggil ke ASP.NET WebMethod Menghasilkan Ralat '401 Tanpa Kebenaran'?

Mengapa jQuery AJAX Saya Memanggil ke ASP.NET WebMethod Menghasilkan Ralat '401 Tanpa Kebenaran'?

DDD
Lepaskan: 2025-01-04 08:31:34
asal
495 orang telah melayarinya

Why Does My jQuery AJAX Call to an ASP.NET WebMethod Result in a

ASP.NET: WebMethod dengan jQuery AJAX Mengembalikan Ralat "401 Tanpa Kebenaran"

Apabila cuba memanggil WebMethod dalam ASP.NET WebForm menggunakan jQuery AJAX, ralat "401 (Tidak Dibenarkan)" mungkin berlaku dihadapi. Isu ini timbul disebabkan oleh tetapan pengesahan dalam fail web.config.

WebMethod dikonfigurasikan seperti berikut:

[WebMethod]
public static string GetClients(string searchTerm, int pageIndex)
{
    // ...
    return GetData(cmd, pageIndex).GetXml();
}
Salin selepas log masuk

Dan panggilan jQuery AJAX dibuat daripada:

function GetClients(pageIndex) {
    $.ajax({
        type: "POST",
        url: "ConsultaPedidos.aspx/GetClients",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        // ...
    });
}
Salin selepas log masuk

Walau bagaimanapun, selepas mendayakan pengesahan pengguna dalam web.config fail:

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="/Dashboard" />
</authentication>
<authorization>
    <deny users="?" />
</authorization>
Salin selepas log masuk

Panggilan AJAX gagal dengan ralat yang dinyatakan di atas.

Penyelesaian:

Untuk menyelesaikan isu ini, dua pengubahsuaian diperlukan:

  1. Lumpuhkan Nama Auto ASP.NET Ubah hala:

    • Buka fail RouteConfig.cs dalam folder App_Start.
    • Tukar yang berikut talian:

      settings.AutoRedirectMode = RedirectMode.Permanent;
      Salin selepas log masuk

      kepada:

      settings.AutoRedirectMode = RedirectMode.Off;
      Salin selepas log masuk
  2. Betulkan Laluan URL Mesra:

    • Untuk tapak web yang mendayakan URL mesra, URL dalam panggilan AJAX jQuery mestilah diubah suai:

      • Tukar:

        url: "ConsultaPedidos.aspx/GetClients"
        Salin selepas log masuk
      • Kepada:

        url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>'
        Salin selepas log masuk

Pelarasan ini akan membolehkan panggilan jQuery AJAX mengakses WebMethod tanpa mencetuskan ralat "401 Unauthorized".

Atas ialah kandungan terperinci Mengapa jQuery AJAX Saya Memanggil ke ASP.NET WebMethod Menghasilkan Ralat '401 Tanpa Kebenaran'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan