$.ajax({
type: "post",
url:"jsontest.do",
data:{
name:'汪汪汪',
phones:[
'123457',
'999999'
]
})
})
如上,当提交时不指定contentType时,通过chrome观察提交信息,发现contentType:application/x-www-form-urlencoded; charset=UTF-8
而此时的data数据是放在FormData中。
修改contentType的值,代码如下
$.ajax({
type: "post",
url:"jsontest.do",
contentType:"application/json;charset:utf-8",
data:{
name:'汪汪汪',
phones:[
'123457',
'999999'
]
}
})
此时,data数据是存放在requestPayload之中。
在使用springmvc时,发现有不同之处。
服务端代码
@RequestMapping("/jsontest")
@ResponseBody
public Map<String,Object> test(String name){
System.out.println( name);
return null;
}
在接收参数时,上述两种contentType会导致不同的结果。
当contentType是application/json时,test方法不会接收到name参数
当contentType是contentType:application/x-www-form-urlencoded,即默认contentType,test方法会接收到name参数
简单的总结,也请各位大神科普相关的http协议知识