ASP.NET menemui "401 (Tidak Diizinkan)" semasa memanggil WebMethod dengan jQuery AJAX
Ditemui semasa memanggil WebMethod dalam ASP.NET Webform " 401 (Tidak dibenarkan)", ini adalah masalah biasa. Artikel ini akan meneroka kemungkinan punca masalah ini dan menyediakan penyelesaian.
Penyelesaian
Penyelesaian yang diberikan dalam soalan asal adalah untuk mengubah suai fail ~/App_Start/RouteConfig.cs dan menggantikan baris berikut
settings.AutoRedirectMode = RedirectMode.Permanent;
Tukar kepada
settings.AutoRedirectMode = RedirectMode.Off;
atau ulas baris ini. Jika URL mesra didayakan, anda juga perlu menukar baris berikut
url: "ConsultaPedidos.aspx/GetClients",
kepada
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
Analisis
"401 (Tidak Dibenarkan )" Ralat menunjukkan bahawa pelayan tidak boleh mengesahkan permintaan pelanggan. Dalam ASP.NET, halaman WebForms menggunakan pengesahan Borang secara lalai, secara automatik mengubah hala ke halaman log masuk apabila pengguna tidak disahkan.
Tetapan.AutoRedirectMode tetapan dalam fail ~/App_Start/RouteConfig.cs menentukan cara ubah hala dikendalikan apabila URL yang diminta tidak wujud. Nilai lalai ialah RedirectMode.Permanent, yang bermaksud bahawa ubah hala ke halaman log masuk akan kekal dan URL asal tidak akan dapat diakses walaupun pelanggan disahkan. Tukar tetapan ini kepada RedirectMode.Off atau ulas baris ini untuk melumpuhkan ubah hala automatik.
Selain itu, jika URL Mesra didayakan, permintaan AJAX jQuery akan menggunakan URL relatif pelanggan (cth. "ConsultaPedidos.aspx/GetClients"). Ini menyebabkan pelayan tidak dapat menghuraikan permintaan dan mengembalikan ralat "401 (Tidak Dibenarkan)". Menukar URL relatif kepada URL mutlak menggunakan kaedah ResolveUrl boleh menyelesaikan isu ini.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat '401 (Tidak Dibenarkan)' Semasa Memanggil ASP.NET WebMethod dengan jQuery AJAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!