在使用ajax的时候,有时候你会发现前端发送的请求,后端接口接受到的格式并不是想要的格式,然后机会报错,最常见的就是json数据。
那么这是为什么呢?打开控制台你会发现,接口请求默认的contentType的格式是application/x-www-form-urlencoded。这个格式的特点是post的数据会用&连接起来,比如传输姓名和年龄两个字段
data:{
name:'jack',
age:17
}
你会发现后台接受的数据是name=jack&age=17,这时候后台只需要getParameter就能获取到相应的参数值。
这样看来我们传递数据用这一个就行了,好像也没什么不可以,但是如果使用application/x-www-form-urlencoded,在多层json的时候就会出现问题,对于剁成的json数据来说,后台也更希望层次清晰的传到后台。这个时候我们需要把conttentType设置成application/json。
contentType: 'application/json',
data: JSON.stringify({
name:'jack',
age:17,
brother:{
name:jack1,
age:16
}
})
在使用application/json的时候我们需要使用JSON.stringify去格式化一下data数据,这样后台获取到的数据就可以json化并正常使用了。