用户在尝试调用 WebMethod 时面临授权错误 (401)使用 jQuery AJAX 的 ASP.NET。错误消息通常显示为“身份验证失败。”
WebMethod 在 WebForm 中声明为:
[WebMethod] public static string GetClients(string searchTerm, int pageIndex) { /*...*/ }
但是,在使用以下方式调用 WebMethod 时:
$.ajax({ /*...*/ url: "ConsultaPedidos.aspx/GetClients", /*...*/ });
浏览器响应 401 Unauthorized错误。
此问题的解决方案涉及禁用 ASP.NET 中的自动重定向机制:
找到line:
settings.AutoRedirectMode = RedirectMode.Permanent;
将其更改为:
settings.AutoRedirectMode = RedirectMode.Off;
或者,您可以注释掉该行。
额外修改:
如果应用程序中启用了友好 URL,您还必须将:
url: "ConsultaPedidos.aspx/GetClients",
更改为:
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
说明:
默认情况下,ASP.NET 会自动将未经授权的请求重定向到登录名 页。禁用此行为允许 WebMethod 调用继续进行。
以上是为什么使用 jQuery AJAX 调用 ASP.NET WebMethod 时会收到 401 未经授权的错误?的详细内容。更多信息请关注PHP中文网其他相关文章!