首页 > 后端开发 > C++ > 为什么在使用 jQuery AJAX 调用 ASP.NET WebMethod 时出现'401(未经授权)”错误?

为什么在使用 jQuery AJAX 调用 ASP.NET WebMethod 时出现'401(未经授权)”错误?

Mary-Kate Olsen
发布: 2025-01-03 06:50:46
原创
705 人浏览过

Why Am I Getting a

ASP.NET 调用 WebMethod with jQuery AJAX 出现 "401 (Unauthorized)"

在 ASP.NET Webform 中调用 WebMethod 时遇到 "401 (Unauthorized)" 错误,这是常见的问题。本文将探讨导致此问题的潜在原因并提供解决方案。

解决方案

原问题中给出的解决方案是修改 ~/App_Start/RouteConfig.cs 文件,将以下行

settings.AutoRedirectMode = RedirectMode.Permanent;
登录后复制

更改为

settings.AutoRedirectMode = RedirectMode.Off;
登录后复制

或注释掉此行。如果启用了友好 URL,还需要将以下行

url: "ConsultaPedidos.aspx/GetClients",
登录后复制

更改为

url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
登录后复制

分析

"401 (Unauthorized)" 错误表明服务器无法验证客户端的请求。在 ASP.NET 中,WebForms 页面默认使用 Forms 身份验证,当用户未通过身份验证时会自动重定向到登录页面。

~/App_Start/RouteConfig.cs 文件中 settings.AutoRedirectMode 设置指定当请求的 URL 不存在时如何处理重定向。默认值为 RedirectMode.Permanent,这意味着将永久重定向到登录页面,即使客户端已经通过身份验证也无法访问原始 URL。将此设置更改为 RedirectMode.Off 或注释掉此行可禁用自动重定向。

此外,如果启用了友好 URL,则 jQuery AJAX 请求将使用客户端相对 URL(例如 "ConsultaPedidos.aspx/GetClients")。这会导致服务器无法解析请求,并返回 "401 (Unauthorized)" 错误。使用 ResolveUrl 方法将相对 URL 转换为绝对 URL 可以解决此问题。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板