You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级jQuery至3.6.3后,ASP.NET中Ajax POST方法失效求助

解决jQuery 3.x调用.NET WebMethod重定向问题

以下是针对你遇到问题的具体排查和修复方案:

  • 修正WebMethod的静态修饰符
    .NET的WebMethod必须是静态方法才能被客户端AJAX调用,你的后台代码漏掉了static关键字,这是核心问题:
[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false)]
public static string SelectEmployer(string key) // 添加static修饰符
{
    string strUrl = "";
    return strUrl;
}
  • 调整jQuery请求的参数序列化与内容类型
    jQuery 3.x对AJAX请求的默认处理逻辑有变化,$.post默认会以application/x-www-form-urlencoded格式发送数据,而.NET WebMethod要求接收JSON格式的参数。需要改用$.ajax显式配置:
$.ajax({
    url: "/employer/employerbrowse.aspx/SelectEmployer",
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ key: key }), // 手动序列化参数为JSON字符串
    success: function (data) {
        alert(data.d); // .NET WebMethod的返回值封装在data.d属性中
    },
    error: function(xhr) {
        console.log(xhr.responseText); // 打印错误信息便于排查
    }
});
  • 排查jQuery版本冲突
    检查页面中是否同时加载了旧版本的jQuery,导致版本冲突。可以在浏览器控制台执行console.log($.fn.jquery),确认当前生效的版本是3.6.3,若存在冲突,移除旧版本的引用。

  • 验证页面ScriptManager配置
    确保页面中存在ScriptManager控件并启用页面方法:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True"></asp:ScriptManager>

没有该控件的话,客户端无法正确调用页面的WebMethod。

  • 确认请求路径正确性
    检查请求URL是否正确,避免因路径错误导致404,进而触发页面重定向。可以使用相对路径(如当前页面在同一目录下,改用"employerbrowse.aspx/SelectEmployer")或在浏览器开发者工具的Network面板查看请求的实际状态码。

内容的提问来源于stack exchange,提问作者Gopal Biswas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:45:20