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

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

Susan Sarandon
发布: 2025-01-05 13:28:41
原创
444 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板