这里只说明两种常用的contentType,后续再把剩下的补上
application/x-www-form-urlencoded
//前端
$.ajax({
type : "POST",
//默认属性
//contentType: "application/x-www-form-urlencoded",
url : "/test/ajaxTest1",
data : {"param1":"1"},
success : function(result) {
alert(result);
},
error : function(e){
}
});
//后端
@RequestMapping("/ajaxTest1")
@ResponseBody
public String ajaxTest(@RequestParam(value = "param1",defaultValue = "") String param1,
HttpServletRequest request){
String t = request.getParameter("param1");
return t;
}
1、传值格式为键值对,后台可以RequestParam或getParameter,但不能用requestBody;
2、POST、GET均可。
application/json
//前端
$.ajax({
type : "POST",
contentType: "application/json;charset=UTF-8",
url : "/test/ajaxTest2",
data : JSON.stringify({"param1":"1"}),
success : function(result) {
alert(result);
},
error : function(e){
}
});
//后端
@RequestMapping("/ajaxTest2")
@ResponseBody
public String ajaxTest2(@RequestBody Map<String,String> map){
return map.get("param1");
}
1、传值格式为JSON字符串,后台可以RequestBody,但不能用RequestParam或getParameter;
2、只能用POST方式。
另外原则上RequestBody和RequestParam不能同时使用,但是可以通过拼接url的方式实现,即data中传递RequestBody的数据,url中传递RequestParam的数据。