springMVC中,后端用对象接收映射问题
首先,GET请求方式是将参数拼接到地址栏,格式为地址 ?key1=value1&key2=value2
而POST方式是放在请求体中,地址栏不可见。
并且使用POST发送请求时,不设置请求头时默认为 contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
假如后端接收参数用@RequestBody注解的话,该请求头则不能映射,必须设置请求头为 contentType: 'application/json; charset=UTF-8',
并且前端发送的也必须是json格式的字符串,不能是JS对象
//JS对象
var stu ={
"id":"1001",
"username":"张三",
"book":{
"bookname":"语文",
"price":"40"
}
}
//用JSON.stringify()转为json格式的字符串
JSON.stringify(stu)
用转换后的json格式字符串传输,后端@RequestBody 映射的对象就能直接接收了