Form提交参数处理

form表单是可以直接提交的,但是很多场景我们需要对参数稍作处理,转换成标准的JSON结构提交。

基于jQuery的小插件:

$.prototype.serializeObject = function() {
    var a, o, h, i, e;
    a = this.serializeArray();
    o = {};
    h = o.hasOwnProperty;
    for (i = 0; i < a.length; i++) {
        e = a[i];
        if (!h.call(o, e.name)) {
            o[e.name] = e.value;
        }
    }
    return o;
};

然后使用:

$('form').submit(function(event) {
    event.preventDefault();

    var form = $(this);
    $.ajax({
        url: form.attr("action"),
        type: "POST",
        data: JSON.stringify(form.serializeObject()),
        contentType: "application/json",
        dataType: "json",
        beforeSend: function () {
        },
        error: function () {
        },
        complete:function () {
        },
        success: function (res) {
        }
    })
});


multipart/form-data 是一种常见的参数提交方式,通常用于上传文件或提交包含文件的表单数据。在该方式下,数据会被分割成多个部分,每个部分都有自己的头部信息和内容,最终以多个部分的形式进行提交。 在使用 multipart/form-data 方式提交参数,需要在 HTTP 请求的头部中设置相应的 Content-Type 为 multipart/form-data,并且在请求体中按照一定的格式组织数据。 下面是一个示例的 HTTP 请求头和请求体的格式: ``` Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxxxxxxxx ------WebKitFormBoundaryxxxxxxxx Content-Disposition: form-data; name="param1" value1 ------WebKitFormBoundaryxxxxxxxx Content-Disposition: form-data; name="param2"; filename="file.txt" Content-Type: text/plain file content ------WebKitFormBoundaryxxxxxxxx-- ``` 在上面的示例中,boundary 是用来分隔不同部分的标识符,它需要在 Content-Type 头部中指定。每个部分以两个连续的 boundary 开始,并在最后一个部分的结尾处以两个连续的 boundary 结束。 每个部分由以下几部分组成: - Content-Disposition:指定参数的名称和可选的文件名。 - Content-Type:指定参数的数据类型,如文本、图片等。 - 数据内容:参数的具体值或文件的内容。 通过这种方式,可以将多个参数和文件一起提交到服务器端。在服务器端接收到请求后,可以解析相应的数据并进行处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值