Maison > développement back-end > C++ > Pourquoi ma méthode Web ASP.NET renvoie-t-elle une erreur « 401 (non autorisée) » lorsqu'elle est appelée via jQuery AJAX ?

Pourquoi ma méthode Web ASP.NET renvoie-t-elle une erreur « 401 (non autorisée) » lorsqu'elle est appelée via jQuery AJAX ?

Barbara Streisand
Libérer: 2025-01-04 04:59:40
original
439 Les gens l'ont consulté

Why Does My ASP.NET WebMethod Return a

ASP.NET L'appel de WebMethod avec jQuery AJAX renvoie "401 (Non autorisé)"


Un problème est survenu lors de la tentative pour appeler une WebMethod dans un formulaire Web ASP.NET à l'aide de jQuery AJAX, ce qui entraîne un Message d'erreur "401 (Non autorisé)".

La WebMethod en question, GetClients, est définie comme suit :

[WebMethod]<br>public static chaîne GetClients (chaîne terme de recherche, int pageIndex)<br>{</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// ...
Copier après la connexion

}

Cette WebMethod est invoquée à partir de jQuery AJAX comme suit :

function GetClients (pageIndex) {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$.ajax({
    // ...
Copier après la connexion

}

Cependant, lors de la requête AJAX, l'erreur suivante se produit :

POST http:// localhost:64365/ConsultaPedidos.aspx/GetClients <strong>401<br> (Non autorisé)</strong>

Une enquête plus approfondie révèle que cette erreur est survenue après la mise en œuvre de l'authentification des utilisateurs dans l'application Web. La configuration de l'authentification est définie comme suit :

<system.web></p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="/Dashboard" />
</authentication>
<authorization>
    <deny users="?" />
</authorization>
Copier après la connexion

Pour résoudre ce problème, les étapes suivantes ont été pris :

  1. Désactiver la redirection automatique : Dans le fichier ~/App_Start/RouteConfig.cs, commentez ou modifiez la ligne suivante :

< ;pre>settings.AutoRedirectMode = RedirectMode.Permanent;

  1. Mettre à jour l'URL AJAX : Si les URL conviviales sont activées, mettez à jour l'URL jQuery AJAX pour utiliser ResolveUrl :

url : <%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',

En implémentant ces modifications, l'erreur "401 (Non autorisé)" a été éliminée et la WebMethod a pu être appelé avec succès en utilisant jQuery AJAX.

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
Article précédent:Stack vs Heap : quel est l'impact des méthodes d'allocation sur les performances ? Article suivant:Comment animer un dessin au trait sur un canevas C# WPF à l’aide de code ?
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
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal