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 映射的对象就能直接接收了