ASP.Net MVC中Ajax发起POST请求返回HTTP 400错误如何解决
排查与解决方法
- 优先修复参数绑定特性缺失问题
你当前POST请求的contentType为application/json,数据放在请求体中,ASP.NET Core默认不会从请求体读取数据绑定到Action的普通参数,必须给参数添加[FromBody]特性指定绑定来源,修改后控制器代码如下:
[HttpPost] public IActionResult MethodName([FromBody] object value) { return Ok(); }
如果明确传输的是整数类型,也可以将参数类型改为int提升绑定准确性:
[HttpPost] public IActionResult MethodName([FromBody] int value) { return Ok(); }
- 排查防伪令牌验证拦截
如果项目全局或当前控制器/Action上标注了[ValidateAntiForgeryToken]特性,AJAX POST请求未携带对应防伪令牌也会返回400。接口场景可以给Action添加[IgnoreAntiforgeryToken]关闭验证,普通页面请求则需要在AJAX的请求头中补充RequestVerificationToken字段。 - 校验请求数据合法性
你当前提交的JSON.stringify(11)是合法的JSON标量值,如果后续提交复杂对象,需要确保JSON结构、字段名、字段类型和后端接收参数完全匹配,避免因模型绑定失败返回400。 - 查看后端错误详情
开发环境下可以开启异常页面,或者直接查看服务端控制台的日志输出,400错误会明确标注模型绑定失败的具体原因,可直接定位问题。
内容的提问来源于stack exchange,提问作者Jakub
相关产品推荐
相关产品推荐

