1、在$.ajax使用rest接口传参时,要注意传参的形式跟平常不太相同,直接写例子吧,要这样来传:
var json = {name:"小明",age:20,height:175}
$.ajax({
contentType: "application/json; charset=utf-8",//rest接口要这样写,然后data的类型只能是json字符串,而不是对象,传对象反而接收不到
dataType: "json",//返回值类型
url: 'rest/product',//rest接口
data:JSON.stringify(json),//反而是要转成字符串后端才能接收到
success: function(data){
console.log(data);
},
error : function(msg) {
console.log(msg);
}
});
这样传在chrome浏览器开发者工具的header头里面可以看到显示的是Request Payload,显示的数据是一个json对象,如果上面的data的值没有转成字符串或者contentType的值没有设置为application/json,就会显示的是Form Data,但是这样rest接口后端反而接收不到所传的值,遇到的就去试试吧。
2、其实这里也有人说到,rest接口正常没有嵌套的json对象是没问题的,但如果是有嵌套的json对象就需要用上面的方法,也就是说:
以下这种json对象是没问题的:
var json={
name:"小明",
age:18
}
但如果是这种嵌套型的:
var json={
name:"小明",
age:18,
List:[{
height:175,
weight:60
}]
}
就要用第1点的那些设置和数据形式才可以正常接收传参。快去试试吧