Ajax传json对象
相信很多小伙伴想要通过Ajax传输json数据给后端,本来直接发送一个data: JSON.stringify(obj)
就可以了,但是发现后端的请求参数中有一个参数需要int类型,这个时候就需要用到对象了。
封装对象
首先得到数据并封装对象
(我用的是jQuery)
obj = {
"number": obj.number,
"password": obj.password,
"name": obj.name,
"identity": obj.identity,
"major": obj.major,
"unit": obj.unit,
"gender": obj.gender,
"age": parseInt(obj.age),
"id_number": obj.id_number
};
可以看出这些数据里面只有“age”的value值被转换了,这个例子就是后端要求的请求参数中“age”的值是int类型
后端的小伙伴给我的api文档中他的要求是这样的
请求方法:POST
参数格式:json
请求参数:
{“number”:“2019081503”,“password”:“123456789”,“name”:“玛丽”,“identity”:“学生”,“major”:“计算机科学与技术”,“unit”:“计科195”,“gender”:“女”,“age”:23,“id_number”:“3600002”}
所以如果我直接data: JSON.stringify(obj)
的话我发送过去的参数就成了
{“number”:“2019081503”,“password”:“123456789”,“name”:“玛丽”,“identity”:“学生”,“major”:“计算机科学与技术”,“unit”:“计科195”,“gender”:“女”,“age”:“23”,“id_number”:“3600002”}
这样就不能获得正确的返回参数
那么这个时候就需要封装对象然后在将对象给JSON.stringify()一下就好了
看代码
form.on('submit(saveBtn)', function (obj) {
obj = obj.field;
obj = {
"number": obj.number,
"password": obj.password,
"name": obj.name,
"identity": obj.identity,
"major": obj.major,
"unit": obj.unit,
"gender": obj.gender,
"age": parseInt(obj.age),
"id_number": obj.id_number
};
console.log("看看对象");
console.log(obj);
console.log("看看JSON.stringify(obj)");
console.log(JSON.stringify(obj));
$.ajax({
type: "POST",
contentType: 'application/json',
url: "你的url",
data: JSON.stringify(obj),
dataType: 'json',
success: function (data) {
console.log("成功");
console.log(data);
layer.alert('添加成功');
}
});
return false;
});
更多推荐
Ajax传json对象(jQuery)
发布评论