Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Mendapat Ralat 401 Tanpa Kebenaran Semasa Memanggil ASP.NET WebMethod dengan jQuery AJAX?

Mengapa Saya Mendapat Ralat 401 Tanpa Kebenaran Semasa Memanggil ASP.NET WebMethod dengan jQuery AJAX?

Susan Sarandon
Susan Sarandonasal
2025-01-05 13:28:41427semak imbas

Why Am I Getting a 401 Unauthorized Error When Calling an ASP.NET WebMethod with jQuery AJAX?

Panggilan WebMethod Tanpa Kebenaran dengan ASP.NET dan jQuery AJAX

Penerangan Isu

Pengguna menghadapi ralat kebenaran (401) apabila cuba memanggil WebMethod dalam ASP.NET menggunakan jQuery AJAX. Mesej ralat biasanya berbunyi sebagai "Pengesahan gagal."

Latar Belakang

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

Penyelesaian kepada isu ini melibatkan melumpuhkan mekanisme ubah hala automatik dalam ASP.NET:

  1. Navigasi ke ~/App_Start/RouteConfig.cs.
  2. Cari baris:

    settings.AutoRedirectMode = RedirectMode.Permanent;
  3. 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!

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