首页 >后端开发 >C++ >为什么使用 jQuery AJAX 调用 ASP.NET WebMethod 时会收到 401 未经授权的错误?

为什么使用 jQuery AJAX 调用 ASP.NET WebMethod 时会收到 401 未经授权的错误?

Susan Sarandon
Susan Sarandon原创
2025-01-05 13:28:41428浏览

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

使用 ASP.NET 和 jQuery AJAX 进行未经授权的 WebMethod 调用

问题描述

用户在尝试调用 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 中的自动重定向机制:

  1. 导航到 ~/App_Start/RouteConfig.cs。
  2. 找到line:

    settings.AutoRedirectMode = RedirectMode.Permanent;
  3. 将其更改为:

    settings.AutoRedirectMode = RedirectMode.Off;

    或者,您可以注释掉该行。

额外修改:

如果应用程序中启用了友好 URL,您还必须将:

url: "ConsultaPedidos.aspx/GetClients",

更改为:

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

说明:

默认情况下,ASP.NET 会自动将未经授权的请求重定向到登录名 页。禁用此行为允许 WebMethod 调用继续进行。

以上是为什么使用 jQuery AJAX 调用 ASP.NET WebMethod 时会收到 401 未经授权的错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn