jquery 序列化的相关问题。

双人鱼XKQ 发布于 2017/02/06 13:51
阅读 147
收藏 0

 工具类中封装了一个这样的方法

/**
     * 序列化jQuery对象为JSON对象
     */
    $.fn.serializeObject = function () {
        var obj = {};

        $.each(this.serializeArray(), function (i, o) {
            var n = o.name, v = o.value;

            if (obj[n]) {
                if ($.isArray(obj[n])) {
                    obj[n].push(v);
                } else {
                    obj[n] = [obj[n], v];
                }
            } else {
                obj[n] = v;
            }
        });

        return obj;
    };



调用的时候是使用表单的Id进行调用。

$('#form-save-goods').serializeObject()

我理解的这个方法的作用就是将表单序列化为json对象,

然后调用以下方法,将$('#form-save-goods').serializeObject()传入data部分


    /**
     * ajax提交数据
     */
    app.$post = function (url, data, type) {
        return $.post(url, data, function (data, textStatus, jqXHR) {
            console.log('app.postData');
            //超时跳转到登录
        }, type || 'json');
    };

 

我想知道和$("form").serialize()直接进行提交有什么区别呢?

$.ajax({
    type: 'post',
    url: 'your url',
    data: $("form").serialize(),
    success: function(data) {
        // your code
    }
});

 

 

输出结果是:

第一个是serialize()方法

第二个是serializeObject

加载中
0
Tuesday
Tuesday

第一个为明文传输, 在某些浏览器工具干扰下, 是可以被修改的. 

第二个为数据流对象,  支持二进制及大容量提交, 也是最便捷的. 

双人鱼XKQ
双人鱼XKQ
就象get和post的区别吗?一个安全,一个不安全吗?
返回顶部
顶部