Les utilisateurs sont confrontés à des erreurs d'autorisation (401) lorsqu'ils tentent d'appeler une WebMethod dans ASP.NET utilisant jQuery AJAX. Le message d'erreur se lit généralement comme suit : "L'authentification a échoué."
La WebMethod est déclarée dans un WebForm comme :
[WebMethod] public static string GetClients(string searchTerm, int pageIndex) { /*...*/ }
Cependant, lors de l'appel de la WebMethod avec :
$.ajax({ /*...*/ url: "ConsultaPedidos.aspx/GetClients", /*...*/ });
le navigateur répond avec un 401 non autorisé erreur.
La solution à ce problème implique de désactiver le mécanisme de redirection automatique dans ASP.NET :
Localisez le ligne :
settings.AutoRedirectMode = RedirectMode.Permanent;
Remplacez-la par :
settings.AutoRedirectMode = RedirectMode.Off;
Vous pouvez également commenter la ligne.
Modification supplémentaire :
Si les URL conviviales sont activées dans l'application, vous doit également changer :
url: "ConsultaPedidos.aspx/GetClients",
en :
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
Explication :
Par défaut, ASP.NET redirige automatiquement les requêtes non autorisées vers le page de connexion. La désactivation de ce comportement permet à l'appel WebMethod de continuer.
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!