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;});

















