Maison >développement back-end >C++ >Pourquoi est-ce que je reçois une erreur 401 non autorisée lors de l'appel d'une WebMethod ASP.NET avec jQuery AJAX ?

Pourquoi est-ce que je reçois une erreur 401 non autorisée lors de l'appel d'une WebMethod ASP.NET avec jQuery AJAX ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-05 13:28:41428parcourir

Why Am I Getting a 401 Unauthorized Error When Calling an ASP.NET WebMethod with jQuery AJAX?

Appel WebMethod non autorisé avec ASP.NET et jQuery AJAX

Description du problème

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é."

Contexte

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.

Solution

La solution à ce problème implique de désactiver le mécanisme de redirection automatique dans ASP.NET :

  1. Accédez à ~/App_Start/RouteConfig.cs.
  2. Localisez le ligne :

    settings.AutoRedirectMode = RedirectMode.Permanent;
  3. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn