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
DDDOriginal
2025-01-04 08:31:34528Durchsuche

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();
}

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",
        // ...
    });
}

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>

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;

      in:

      settings.AutoRedirectMode = RedirectMode.Off;
  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"
      • An:

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

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!

Stellungnahme:
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