最近公司项目中前端工程师遇到一系列的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);
}