ASP.NET ist beim Aufruf von WebMethod mit jQuery AJAX auf „401 (Unauthorized)“ gestoßen.
Aufgetreten beim Aufruf von WebMethod in ASP.NET Webform „ 401 (Unauthorized)“ Fehler, das ist ein häufiges Problem. In diesem Artikel werden die möglichen Ursachen dieses Problems untersucht und Lösungen bereitgestellt.
Lösung
Die in der ursprünglichen Frage angegebene Lösung besteht darin, die Datei ~/App_Start/RouteConfig.cs zu ändern und die folgenden Zeilen zu ersetzen
settings.AutoRedirectMode = RedirectMode.Permanent;
Wechseln Sie zu
settings.AutoRedirectMode = RedirectMode.Off;
oder kommentieren Sie diese Zeile aus. Wenn benutzerfreundliche URLs aktiviert sind, müssen Sie auch die folgende Zeile
url: "ConsultaPedidos.aspx/GetClients",
in
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
Analyse
"401 (Nicht autorisiert) ändern )“ Der Fehler weist darauf hin, dass der Server die Anfrage des Clients nicht authentifizieren kann. In ASP.NET verwenden WebForms-Seiten standardmäßig die Formularauthentifizierung und leiten automatisch zur Anmeldeseite um, wenn der Benutzer nicht authentifiziert ist.
Die Einstellung „settings.AutoRedirectMode“ in der Datei ~/App_Start/RouteConfig.cs gibt an, wie Weiterleitungen gehandhabt werden, wenn die angeforderte URL nicht vorhanden ist. Der Standardwert ist RedirectMode.Permanent, was bedeutet, dass die Umleitung zur Anmeldeseite dauerhaft ist und die ursprüngliche URL nicht zugänglich ist, selbst wenn der Client authentifiziert ist. Ändern Sie diese Einstellung in RedirectMode.Off oder kommentieren Sie diese Zeile aus, um die automatische Umleitung zu deaktivieren.
Wenn freundliche URLs aktiviert sind, verwenden jQuery-AJAX-Anfragen außerdem clientrelative URLs (z. B. „ConsultaPedidos.aspx/GetClients“). Dies führt dazu, dass der Server die Anfrage nicht analysieren kann und den Fehler „401 (nicht autorisiert)“ zurückgibt. Durch Konvertieren der relativen URL in eine absolute URL mithilfe der ResolveUrl-Methode kann dieses Problem behoben werden.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Aufruf einer ASP.NET WebMethod mit jQuery AJAX den Fehler „401 (nicht autorisiert)'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!