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正确也可能无法正常工作:
- 静态方法不能作为Action:ASP.NET控制器Action必须是实例方法,去掉
static修饰符。 - 缺少必要的特性:需要添加
[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
相关产品推荐
相关产品推荐

