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
Barbara Streisandoriginal
2025-01-04 04:59:40460parcourir

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>
<pre class="brush:php;toolbar:false">// ...

}

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

function GetClients (pageIndex) {</p>
<pre class="brush:php;toolbar:false">$.ajax({
    // ...

}

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>
<pre class="brush:php;toolbar:false"><authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="/Dashboard" />
</authentication>
<authorization>
    <deny users="?" />
</authorization>

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!

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