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

ASP.NET AJAX请求报404错误:如何正确构造请求URL?

解决AJAX请求404错误的方案

一、修正AJAX请求的URL

当前页面基础URL是https://localhost:44306/Jobs/Sprachen?categoryId=handwerk&handler=UserId,你写的相对路径Sprachen/SaveEmpList会被解析为https://localhost:44306/Jobs/Sprachen/Sprachen/SaveEmpList,这显然不是正确的接口地址,导致404。

你需要根据实际的控制器路由来构造URL:

  • 如果SaveEmpList是Jobs控制器下的Action,直接使用根路径开头的绝对URL:
    url: '/Jobs/SaveEmpList',
    
  • 如果Sprachen是独立的控制器,SaveEmpList是它的Action,使用:
    url: '/Sprachen/SaveEmpList',
    
  • 或者用相对上级路径(从当前Jobs/Sprachen回到Jobs目录再访问SaveEmpList):
    url: '../SaveEmpList',
    

二、修复控制器方法的问题

你的控制器方法存在两个关键问题,即使URL正确也可能无法正常工作:

  1. 静态方法不能作为Action:ASP.NET控制器Action必须是实例方法,去掉static修饰符。
  2. 缺少必要的特性:需要添加[HttpPost]标记这是POST请求,并且因为你提交的是JSON格式数据,参数需要加上[FromBody]特性来正确绑定。

修正后的控制器方法:

[HttpPost]
public bool SaveEmpList([FromBody] List<Employee> empList)
{
    try
    {
        // 实现保存EmpList到数据库的逻辑  
    }
    catch (Exception ex)
    {
        // 记录错误日志  
        return false;
    }

    return true;
}

三、额外检查点

  • 确认你的路由配置是否正确,确保SaveEmpListAction能被正确路由匹配。
  • 确保Employee类的属性名称和前端提交的ID、Name完全一致(大小写敏感),否则会导致参数绑定失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:35:13