Heim >Backend-Entwicklung >C++ >Warum führt mein jQuery-AJAX-Aufruf an eine ASP.NET WebMethod zu einem „401 Unauthorized'-Fehler?
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:
Deaktivieren Sie ASP.NET Autoname Redirects:
Ändern Sie die folgende Zeile:
settings.AutoRedirectMode = RedirectMode.Permanent;
in:
settings.AutoRedirectMode = RedirectMode.Off;
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!