JavaScript中的FormData类型示例详解_javascript技巧

在 JavaScript 中,FormData 是一个用于构建表单数据的接口,主要用于通过  XMLHttpRequest 或  fetch API  发送表单数据(尤其是文件上传)。它提供了一种方便的方式来处理表单字段(包括文件)的键值对。

看着和Map类型有些相似,因为实现了Symbol[iterator],因此是可迭代对象。

可以通过构造函数直接创建空的 FormData 对象,或者从 HTML 表单元素初始化:

// 方法1:创建空的 FormDataconst formData = new FormData();// 方法2:从 HTML 表单初始化(自动包含表单的所有字段)const formElement = document.querySelector('form');const formDataFromForm = new FormData(formElement);

2. 添加数据到 FormData

使用 append() 方法添加字段(支持多次添加同名键):

const formData = new FormData();// 添加文本字段formData.append('username', 'JohnDoe');formData.append('age', '25');// 添加文件(通过文件输入框获取)const fileInput = document.querySelector('input[type="file"]');if (fileInput.files.length > 0) { formData.append('avatar', fileInput.files[0]); // 'avatar' 是字段名}// 可以添加多个同名键(如多选框)formData.append('hobbies', 'reading');formData.append('hobbies', 'gaming');

3. 发送 FormData 到服务器

通过 fetch 或 XMLHttpRequest 发送数据:

fetch('/api/upload', { method: 'POST', body: formData, // 直接传递 FormData 对象 // 注意:不要手动设置 Content-Type,浏览器会自动添加 multipart/form-data}) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));

使用 XMLHttpRequest

const xhr = new XMLHttpRequest();xhr.open('POST', '/api/upload');xhr.onload = function() { if (xhr.status === 200) { console.log('Upload success:', xhr.responseText); }};xhr.send(formData);

4. 读取 FormData 内容

虽然 FormData 主要用于发送数据,但也可以通过以下方式读取内容:

// 遍历所有字段for (const [key, value] of formData.entries()) { console.log(key, value);}// 获取单个字段的值(仅第一个)const username = formData.get('username');// 检查字段是否存在const hasAge = formData.has('age');

5. 注意事项

完整示例:

到此这篇关于JavaScript中的FormData类型示例详解的文章就介绍到这了,更多相关JS中FormData类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


本文地址: https://www.earthnavs.com/jishuwz/eac36fab16e232fb64b6.html
全局中部横幅
智库导航网

网络行业的自动发布外链,友情链接交换收录查询平台,免费自动收录,,网站提高网址收录,网站收录交换链接,网站自动收录,免费秒收录,网络永久免费的自动收录网站!

人人都是产品经理

人人都是产品经理致力为产品新人、产品经理等广大产品爱好者打造一个良好的学习交流平台。深度剖析国内外互联网业内动态,分享产品设计、交互设计、视觉设计、用户体验设计、产品运营、用户增长、私域运营、小红书运营、视频号运营、抖音运营、产品市场和项目管理等专业产品知识。

南方周末

该站点未添加描述description...

7
7

该站点未添加描述description...

新闻

该站点未添加描述description...

千千音乐

千千音乐致力于提供更专业、更懂你的「场景音乐」,打造一款个性化、智能化的音乐伴侣产品,让你感受音乐本身的魅力。这里有来自不同国家的数百名音乐设计师,为你提供更好的音乐服务。

云服务器

奇异互动提供专业的云服务器,云虚拟主机,香港VPS,独立服务器,裸金属服务器,面向全球客户提供基于云计算的IT解决方案与客户服务,是国内专业的云服务器,云虚拟主机,香港VPS,独立服务器,裸金属服务器,基础设施服务提供商。

阿帕云引擎

阿帕云引擎是企业级云管理操作系统,主要面向智能化数据中心,通过通过控制器提供的api来管理包括计算,存储,网络在内的数据中心的各种资源。我们始终致力于高品质IDC行业软件的开发和创新,为中国的IDC公司提供全方位的云化解决方案及专业的业务管理软件。

【简数采集器】免费的在线网页数据采集软件

【简数采集器】是免费的、在线的网页文章采集器工具软件,功能强大,操作简单,支持AI写作和AI处理数据。云采集无需下载软件,浏览器直接登录使用;不用手写规则(智能识别+点选生成);可发送到CMS网站、数据库,导出Excel等。网页文章采集抓取工具软件首选。

79收录网

79收录网系统是一个专业收录优质网站的网址导航平台,提供简洁高效的网络入口。免费提交收录,发现实用工具、设计资源、程序员必备站,打造您的专属上网主页