Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Mendapat Ralat 401 Tanpa Kebenaran Semasa Memanggil ASP.NET WebMethod dengan jQuery AJAX?
Pengguna menghadapi ralat kebenaran (401) apabila cuba memanggil WebMethod dalam ASP.NET menggunakan jQuery AJAX. Mesej ralat biasanya berbunyi sebagai "Pengesahan gagal."
WebMethod diisytiharkan dalam WebForm sebagai:
[WebMethod] public static string GetClients(string searchTerm, int pageIndex) { /*...*/ }
Walau bagaimanapun, apabila memanggil WebMethod dengan:
$.ajax({ /*...*/ url: "ConsultaPedidos.aspx/GetClients", /*...*/ });
pelayar bertindak balas dengan 401 Tanpa Kebenaran ralat.
Penyelesaian kepada isu ini melibatkan melumpuhkan mekanisme ubah hala automatik dalam ASP.NET:
Cari baris:
settings.AutoRedirectMode = RedirectMode.Permanent;
Tukar kepada:
settings.AutoRedirectMode = RedirectMode.Off;
Sebagai alternatif, anda boleh mengulas keluar baris.
Pengubahsuaian Tambahan:
Jika URL mesra didayakan dalam permohonan, anda juga mesti menukar:
url: "ConsultaPedidos.aspx/GetClients",
kepada:
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
Penjelasan:
Secara lalai, ASP.NET mengubah hala secara automatik tanpa kebenaran permintaan ke halaman log masuk. Melumpuhkan tingkah laku ini membolehkan panggilan WebMethod diteruskan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 401 Tanpa Kebenaran Semasa Memanggil ASP.NET WebMethod dengan jQuery AJAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!