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
全局中部横幅
人民网

人民网,是世界十大报纸之一《人民日报》建设的以新闻为主的大型网上信息发布平台,也是互联网上最大的中文和多语种新闻网站之一。作为国家重点新闻网站,人民网以新闻报道的权威性、及时性、多样性和评论性为特色,在网民中树立起了“权威媒体、大众网站”的形象。

CGTN

Getthenewsasitbreaksandgobehindtheday

知乎封神榜

致力于打造知乎第一门户,知乎新手必备神器,推荐知乎用户和话题,并进行分类和排名,提供准确的搜索功能。

Home

Open-sourceWindowsandOfficeactivatorfeaturingHWID,Ohook,TSforge,KMS38,andOnlineKMSactivationmethods,alongwithadvancedtroubleshooting.

群晖科技

Synology提供你安全、高效率的资料管理系统,确保你能从容掌握极速成长的庞大数位资料,从中取得竞争优势。

宿迁蒲公英网络有限公司直营:宿迁机房IDC

宿迁蒲公英网络有限公司,是一家拥有14年历史的老牌IDC公司,独自拥有宿迁三家机房的经营权,有丰富的机房网络运维经验,主要经营项目:服务器托管、服务器租用、机柜租用托管、百兆独享、G口独享、万兆口独享等大带宽、多线高防服务器、高防BGP服务器,对DDOS、syn、UDP、CC等攻击的防御有丰富经验。并提供365*24H售后服务,全年无休,服务客户为第一要务,客户的要求,我们的追求。

科赋锐信息科技Cloudflare

使员工、应用程序和网络在任何地方都更快、更安全,同时降低复杂性和成本。

号易官网

号易号卡分销系统,分销商已突破百万的专业平台,致力于成为运营商和推广者之间的桥梁,为您的业务拓展提供强有力的支持!

收录站

收录站,站长导航,网址导航,网站导航,网站大全,网站目录,网站分类,分类目录,网站收录,自动收录,秒收录

爱新鲜导航网

爱新鲜网址导航及时整理实用网站,方便您办公学习生活的上网需求。