Maison > développement back-end > C++ > Pourquoi mon appel jQuery AJAX à une méthode Web ASP.NET entraîne-t-il une erreur « 401 non autorisée » ?

Pourquoi mon appel jQuery AJAX à une méthode Web ASP.NET entraîne-t-il une erreur « 401 non autorisée » ?

DDD
Libérer: 2025-01-04 08:31:34
original
527 Les gens l'ont consulté

Why Does My jQuery AJAX Call to an ASP.NET WebMethod Result in a

ASP.NET : WebMethod avec jQuery AJAX renvoie l'erreur « 401 non autorisée »

Lors de la tentative d'appel d'une WebMethod dans un WebForm ASP.NET en utilisant jQuery AJAX, une erreur « 401 (non autorisé) » peut être rencontrée. Ce problème est dû aux paramètres d'authentification dans le fichier web.config.

La WebMethod est configurée comme suit :

[WebMethod]
public static string GetClients(string searchTerm, int pageIndex)
{
    // ...
    return GetData(cmd, pageIndex).GetXml();
}
Copier après la connexion

Et l'appel jQuery AJAX est effectué à partir de :

function GetClients(pageIndex) {
    $.ajax({
        type: "POST",
        url: "ConsultaPedidos.aspx/GetClients",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        // ...
    });
}
Copier après la connexion

Cependant, après avoir activé l'authentification utilisateur dans le fichier web.config :

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="/Dashboard" />
</authentication>
<authorization>
    <deny users="?" />
</authorization>
Copier après la connexion

L'appel AJAX échoue avec l'erreur susmentionnée.

Solution :

Pour résoudre ce problème, deux modifications sont nécessaires :

  1. Désactivez les redirections de nom automatique ASP.NET :

    • Ouvrez le fichier RouteConfig.cs dans le dossier App_Start.
    • Modifiez la ligne suivante :

      settings.AutoRedirectMode = RedirectMode.Permanent;
      Copier après la connexion

      en :

      settings.AutoRedirectMode = RedirectMode.Off;
      Copier après la connexion
  2. Corriger l'URL conviviale Chemin :

    • Pour les sites Web qui activent des URL conviviales, l'URL dans l'appel jQuery AJAX doit être modifié :

      • Changer :

        url: "ConsultaPedidos.aspx/GetClients"
        Copier après la connexion
      • À :

        url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>'
        Copier après la connexion

Ces ajustements permettront à l'appel jQuery AJAX d'accéder à la WebMethod sans déclencher l'erreur "401 Unauthorized".

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal