ASP.NET a rencontré "401 (Non autorisé)" lors de l'appel de WebMethod avec jQuery AJAX
Rencontré lors de l'appel de WebMethod dans le formulaire Web ASP.NET " 401 (Non autorisé)", il s'agit d'un problème courant. Cet article explorera les causes potentielles de ce problème et proposera des solutions.
Solution
La solution donnée dans la question d'origine est de modifier le fichier ~/App_Start/RouteConfig.cs et de remplacer les lignes suivantes
settings.AutoRedirectMode = RedirectMode.Permanent;
Remplacez par
settings.AutoRedirectMode = RedirectMode.Off;
ou commentez cette ligne. Si les URL conviviales sont activées, vous devez également modifier la ligne suivante
url: "ConsultaPedidos.aspx/GetClients",
par
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
Analyse
"401 (Unauthorized )" L'erreur indique que le serveur ne peut pas authentifier la demande du client. Dans ASP.NET, les pages WebForms utilisent l'authentification par formulaires par défaut, redirigeant automatiquement vers la page de connexion lorsque l'utilisateur n'est pas authentifié.
Le paramètre settings.AutoRedirectMode dans le fichier ~/App_Start/RouteConfig.cs spécifie comment les redirections sont gérées lorsque l'URL demandée n'existe pas. La valeur par défaut est RedirectMode.Permanent, ce qui signifie que la redirection vers la page de connexion sera permanente et que l'URL d'origine ne sera pas accessible même si le client est authentifié. Modifiez ce paramètre en RedirectMode.Off ou commentez cette ligne pour désactiver la redirection automatique.
De plus, si les URL conviviales sont activées, les requêtes jQuery AJAX utiliseront des URL relatives au client (par exemple "ConsultaPedidos.aspx/GetClients"). Cela empêche le serveur d'analyser la demande et renvoie une erreur « 401 (non autorisé) ». La conversion d'URL relatives en URL absolues à l'aide de la méthode ResolveUrl peut résoudre ce problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!