前端笔记 关于表单常用方法 serialize()和new FormData()的理解

serialize()和FormData对象都可将表单数据序列化,后通过ajax异步提交 ,序列化表单就是将form表单中所有name属性序列化成KEY-VALUE的形式,提交到后台,后台以对象相应的字段接收

serialize()

  serialize()是JQuery方法,必须依赖jQuery,可序列化表单值创建 URL 编码文本字符串,就是将表单数据以字符串的形式返回,在ssm框架中可通过对象直接接收数据。

       缺点:只能序列化一般数据,文件上传(比如上传头像)则无法序列化,不支持文件二进制流提交。

FormData对象

  FormData是HTML5对象,目前可兼容大多主流的浏览器,但不兼容低版本IE浏览器。

使用FormData 的最大优点就是可以异步上传二进制文件。

  通过ajax异步提交表单数据,可实现文件上传

注意:

  1 form表单加 enctype="multipart/form-data";

  2 ajax加 processData: false,contentType: false,

  3 一般数据域通过此方式序列化后,在ssm框架中后台不可以通过对象直接获取数据

前端表单提交到后端方法,一般需要通过以下步骤来完成: 1. 在前端页面中创建表单元素,并设置表单的 action 属性为后端方法的 URL 地址; ```html <form action="/api/submit" method="post"> <input type="text" name="username"> <input type="password" name="password"> <button type="submit">提交</button> </form> ``` 2. 在表单中添加需要提交的参数,例如上述示例中的用户名和密码; 3. 设置表单的 method 属性为 POST 或 GET,根据后端方法的要求选择相应的请求方式; 4. 通过 JavaScript 监听表单的提交事件,防止表单默认的提交行为,并使用 AJAX 发送表单数据到后端方法。以下是一个 jQuery 实现的示例: ```javascript $('form').submit(function (event) { event.preventDefault(); // 阻止表单默认提交行为 var formData = $(this).serialize(); // 将表单数据序列化为字符串 $.ajax({ url: $(this).attr('action'), // 获取表单的 action 属性作为请求 URL type: $(this).attr('method'), // 获取表单的 method 属性作为请求方法 data: formData, // 将表单数据作为请求参数 success: function (response) { // 处理请求成功的响应结果 }, error: function (xhr, status, error) { // 处理请求失败的响应结果 } }); }); ``` 5. 在后端方法中获取表单提交的参数,并进行相应的处理。以下是一个使用 Node.js 和 Express 框架实现的示例: ```javascript const express = require('express'); const app = express(); app.post('/api/submit', function (req, res) { const username = req.body.username; // 获取表单提交的用户名 const password = req.body.password; // 获取表单提交的密码 // TODO: 处理表单提交的数据 res.send('提交成功'); // 返回响应结果 }); app.listen(3000, function () { console.log('服务器已启动'); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值