Heim > Backend-Entwicklung > C++ > Warum führt mein jQuery-AJAX-Aufruf an eine ASP.NET WebMethod zu einem „401 Unauthorized'-Fehler?

Warum führt mein jQuery-AJAX-Aufruf an eine ASP.NET WebMethod zu einem „401 Unauthorized'-Fehler?

DDD
Freigeben: 2025-01-04 08:31:34
Original
563 Leute haben es durchsucht

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

ASP.NET: WebMethod mit jQuery AJAX gibt den Fehler „401 Unauthorized“ zurück

Beim Versuch, eine WebMethod in einem ASP.NET WebForm aufzurufen Bei Verwendung von jQuery AJAX kann der Fehler „401 (Unauthorized)“ auftreten. Dieses Problem tritt aufgrund der Authentifizierungseinstellungen in der Datei web.config auf.

Die WebMethod ist wie folgt konfiguriert:

[WebMethod]
public static string GetClients(string searchTerm, int pageIndex)
{
    // ...
    return GetData(cmd, pageIndex).GetXml();
}
Nach dem Login kopieren

Und der jQuery-AJAX-Aufruf erfolgt von:

function GetClients(pageIndex) {
    $.ajax({
        type: "POST",
        url: "ConsultaPedidos.aspx/GetClients",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        // ...
    });
}
Nach dem Login kopieren

Nachdem die Benutzerauthentifizierung in der web.config-Datei aktiviert wurde:

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="/Dashboard" />
</authentication>
<authorization>
    <deny users="?" />
</authorization>
Nach dem Login kopieren

Der AJAX-Aufruf schlägt fehl mit dem oben genannten Fehler.

Lösung:

Um dieses Problem zu beheben, sind zwei Änderungen erforderlich:

  1. Deaktivieren Sie ASP.NET Autoname Redirects:

    • Öffnen Sie die Datei RouteConfig.cs im App_Start-Ordner.
    • Ändern Sie die folgende Zeile:

      settings.AutoRedirectMode = RedirectMode.Permanent;
      Nach dem Login kopieren

      in:

      settings.AutoRedirectMode = RedirectMode.Off;
      Nach dem Login kopieren
  2. Freundliche URL korrigieren Pfad:

    • Für Websites, die benutzerfreundliche URLs ermöglichen, muss die URL im jQuery-AJAX-Aufruf sein geändert:

      • Änderung:

        url: "ConsultaPedidos.aspx/GetClients"
        Nach dem Login kopieren
      • An:

        url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>'
        Nach dem Login kopieren

Diese Anpassungen ermöglichen dem jQuery-AJAX-Aufruf den Zugriff auf WebMethod, ohne den Fehler „401 Unauthorized“ auszulösen.

Das obige ist der detaillierte Inhalt vonWarum führt mein jQuery-AJAX-Aufruf an eine ASP.NET WebMethod zu einem „401 Unauthorized'-Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage