最近公司项目中前端工程师遇到一系列的jquery ajax的post请求传值频繁遇到415错误问题。
出现415错误的解决方法:
- 前端看ajax请求的contentType是否与后端一致
- 看发送的数据格式是否正确。
出现400错误的解决方法:
前后台的数据是以字符串的形式传输的,将json格式的js对象转成json格式的字符串传输,如下所示:
$.ajax({type: 'post',url: '/home/test',headers: {'Content-Type': 'application/json; charset=utf-8'},data: JSON.stringify({ id: 1, name: 'test' })})
重点:JSON.stringify()方法
当API端使用FromBody
需要将data数据转换成JSON字符串,并且Content-Type设置为application/json; charset=utf-8
$.ajax({type: 'post',url: '/home/test',headers: {'Content-Type': 'application/json; charset=utf-8'},data: JSON.stringify({ id: 1, name: 'test' })})
C# API
[HttpPost]public IActionResult Test([FromBody]class1 class1){return new JsonResult(class1);}
当API端使用FromForm
ajax 请求默认即可
$.ajax({type: 'post',url: '/home/test1',data: { id: 1, name: 'test' }})
[HttpPost]public IActionResult Test1([FromForm]class1 class1){return new JsonResult(class1);}