(SpringBoot )ajax 传递Json对象和json字符串区别
1、json对象
将表单数据变成json对象,后端接受时,如果json对象对应实体,可以使用@RquestBody Student student
$(document).ready(function () {
$("form").submit(function () {
var obj={};
obj.number=$("#number").val();
obj.OldPassword=$("#OldPassword").val();
obj.NewPassword=$("#NewPassword").val();
$.ajax({
type:"post",
url: "/student/changePw2",
data:obj,//这里直接传递json对象
success:function (data) {
//响应成功后回调函数
alert(data.toString());
console.log(JSON.stringify(data)); //这里将json转为字符串显示(data其实是个object,不转换的话会显示为一片空白)
},
error:function (e) {
console.log(e);
alert("失败");
}
});
});
});
当然,data 也可以写成key-value 形式:key 自定义,后端接受时要一致,value是表单中对应控件的id
data:{
number:'number',
OldPassword:'OldPassword',
NewPassword:'NewPassword'
},
2、json 字符串将json对象变成json 字符串,形式如下:
(1)对应上面第一种:
contentType:"application/json;charset=utf-8",//这是控制json字符串编码,必须得加
data:JSON.stringify(obj),//json对象转换成字符串
(2)对应上面第二种
contentType:"application/json;charset=utf-8",
data:JSON.stringify({
number:'number',
OldPassword:'OldPassword',
NewPassword:'NewPassword'
}),
附加:
dataType:"json"//该属性控制后端返回给前端的数据类型是否为json