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)