formdata 赋值_FormData

formdata 赋值_FormData1 FormData 对象的作用 模拟 HTML 表单 相当于将 HTML 表单映射成表单对象 自动将表单对象中的数据拼接成请求参数的格式 异步上传二进制文件 2 FormData 对象的使用 准备 HTML 表单注意 这个表单不需要请求方式和请求地址 这些内容可以在 Ajax 中设置 formdata 对象不能用于 get 请求 因为 formdata 的数据要放到 send 方法中 而 get 请求方式的请求参数只

1. FormData对象的作用:

① 模拟HTML表单,相当于将HTML表单映射成表单对象,自动将表单对象中的数据拼接成请求参数的格式

② 异步上传二进制文件

2. FormData对象的使用:

① 准备HTML表单

注意:

这个表单不需要请求方式和请求地址,这些内容可以在Ajax中设置。

formdata对象不能用于get请求,因为formdata的数据要放到send()方法中,而get请求方式的请求参数只能放在请求地址的后面。

表单中的input控件必须要有name属性,因为当我们把表单提交到服务器的时候,表单的name属性会作为请求参数的属性名字。

表单中的提交按钮不是submit,如果是submit的话,点击会有默认的提交行为。

表单对象的好处是,不需要我们单独的一个一个的去获取指定的表单控件的值。

② 将HTML表单转化为formData对象

var form = document.getElementById(‘form’);var formData = new FormData(form);

③ 提交表单对象

xhr.send(formData);

注意:服务器端bodyParser模块(用来处理post请求)不能解析formData对象表单数据,我们需要使用formidable模块进行解析

//解析客户端传递过来的FormData对象

form.parse(req, (err, fields, files) =>{…})//第一个参数是错误对象,第二个参数保存的是表单中普通的请求参数,第三个参数保存的是和文件上传相关的信息

3. FormData对象的实例方法:

① 获取表单对象中属性的值

formData.get(‘key’);

② 设置表单对象中属性的值

formData.set(‘key’, ‘value’);

③ 删除表单对象中属性的值

删除属性的应用场景:输入两次密码(原密码和确认密码),但是提交给服务器的时候只用提交一份,所以需要删除掉确认密码。

formData.delete(‘key’);

④ 向表单对象中追加属性值

formData.append(‘key’, ‘value’);

注意:set方法与append方法的区别是,在属性名已存在的情况下,set会覆盖已有键名的值,append会保留两个值。

4. FormData二进制文件上传:

var file = document.getElementById(‘file’)//当用户选择文件的时候

file.onchange = function() {//创建空表单对象

var formData = newFormData();//将用户选择的二进制文件追加到表单对象中

formData.append(‘attrName’, this.files[0]);//配置ajax对象,请求方式必须为post

xhr.open(‘post’, ‘www.example.com’);

xhr.send(formData);

}

注意:用户选择的文件中的files属性是文件集合,即使只有一个值也是集合,需要用files[0]的形式表示(一般每次都只是选择一个文件上传)

5. FormData文件上传进度展示:

0%

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204970.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午7:06
下一篇 2026年3月19日 下午7:07


相关推荐

  • mybatis 批量插入「建议收藏」

    开发项目中,总是与数据打交道,有的时候将数据放入到一个集合中,然后在遍历集合一条一条的插入,感觉效率超不好,最近又碰到这个问题,插入50条数据用了将近1s,完全满足不了系统的需求.效率必须加快,然后网上查询资料,历经千万bug,终于搞定,这里指提供mybatis中的配置,至于dao层的调用mybatis就自己上网查询下资料吧1根据网上搜了一下资料,在sql-mapper.xml文件中写了如下配

    2022年4月9日
    36
  • Claude 4的五种强大应用方法

    Claude 4的五种强大应用方法

    2026年3月16日
    2
  • Pytorch-DataLoader的使用

    Pytorch-DataLoader的使用原文连接:http://chenhao.space/post/d313d236.htmlpytorch-DataLoader的使用importtorchimporttorch.utils.dataasData#[1,1,1]相当于一句话的wordembedding,这个tensor中含有三句话x=torch.tensor([[1,1,1],[2,2,2…

    2022年5月14日
    40
  • 究竟什么是Java虚拟机(JVM)?

    究竟什么是Java虚拟机(JVM)?我们都知道,在Windows上,软件包后缀有exe,而苹果的MacOSX系统上没有安装exe。类似地,MacOSX系统上的软件安装包是dmg后缀,不能安装在Windows系统上。为什么不能安装不同系统上的软件,因为操作系统的底层实现是不同的。对于Windows系统,exe后缀的软件代码被编译成能被Windows系统识别的机器代码。对于MacOSX系统,最后将DMG后缀的软件代码编译为M…

    2022年7月8日
    20
  • python安装jieba库教程_pygame库

    python安装jieba库教程_pygame库方法一:使用pycharm里的检索项(此方法适用于需要使用pycharm的小伙伴)1、打开pycharm,在File下打开Settings。2、在ProjectInterpret菜单栏下,点击”+”号。3、在上方的检索框中输入需要下载的库的库名,点击下方InstallPackage。4、如出现:package”jieba”installsuccessfully的字样,库安装成功。方法二:自行下载第三方库通过指令安装1、…

    2026年2月10日
    4
  • navicat 15.0.17版本激活码_最新在线免费激活

    (navicat 15.0.17版本激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0…

    2022年3月28日
    156

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号