FormData的详解

  • 用途

    1. 将form表单的name和value进行组合,实现表单序列化,减少拼接。
    2. 异步上传文件
  • 创建一个formData对象

    1. 创建一个空对象

      //通过FormData构造函数创建一个空对象
      var formdata=new FormData();
      //可以通过append()方法来追加数据
      formdata.append("name","laotie");
      //通过get方法对值进行读取
      console.log(formdata.get("name"));//laotie
      //通过set方法对值进行设置
      formdata.set("name","laoliu");
      console.log(formdata.get("name"));//laoliu
      
    2. 将表单元素作为参数 ,实现序列化

      var btn=document.querySelector("#btn");
      btn.onclick=function(){//获得页面当中的form表单元素var form=document.querySelector("#advForm");//将获得的表单元素作为参数,对formData进行初始化var formdata=new FormData(form);}
      
    3. 将文件作为参数 ,实现上传文件

      //input type=file 的change事件
      function myChange(e){//e.target.files 获取到的文件对象let file = e.target.files;let formData = new FormData();formData.append("file",file[0]);//下面就可以使用formData作为data的值发送Ajax请求了//注意 如果是使用jquery的ajax 需要加上这两个属性//contentType: false, //必须false才会自动加上正确的Content-Type,否则服务器无法识别//processData: false,必须false才会避开jQuery对 formdata 的默认处理//XMLHttpRequest会对 formdata 进行正确的处理
      }
      
  • formData的其他操作方法

    1. get(key) ,getAll(ket) 获取值
    2. append(key,value) 在数据末尾追加数据
    3. set(key,vlaue) 来设置修改数据
    4. has(key) 判断是否存在对应的key值
    5. delete(key) 删除对象的key 删除后通过get(key)获取到的是null

FormData的详解相关推荐

  1. 【JS基础】var formdata=new FormData() 【FormData用法详解 】

    FormData用法详解 简介 FormData 对象的使用: 1.用一些键值对来模拟一系列表单控件:即将form 中表单元素的 name 与 value 组装成一个 queryString 2.异步 ...

  2. JavaScript中 FormData 对象详解

    简介: FormData 对象用以将数据编译成键值对,以便用 XMLHttpRequest 来发送数据. 主要用于:发送表单数据,也可用于发送带键数据(keyed data),而独立于表单使用. 如果 ...

  3. FormData用法详解

    FormData 对象: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g0axz5Om-1642062084001)(https://sfault-image.b0. ...

  4. Multipart/form-data POST文件上传详解

    Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...

  5. openstack页面自定义插件使用详解(django、ajax、post)(zTree为例)

    2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Be ...

  6. Extjs Form用法详解(适用于Extjs5)

    为什么80%的码农都做不了架构师?>>>    Extjs Form是一个比较常用的控件,主要用来显示和编辑数据的,今天这篇文章将介绍Extjs Form控件的详细用法,包括创建Fo ...

  7. 【转】HTTP协议详解

    原文地址:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html 一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则 ...

  8. php编译工具 知乎,关于知乎回答问题编辑框用Ctrl+V 粘贴图片是如何实现的详解...

    貌似我没有像QQ邮箱之类的装知乎的插件 是用HTML5的新功能实现的吗? 看了@朱利安 的回答,发现我描述的不够清楚 我是用QQ截图之类的工具截的图,然后图片本身是保存在剪切板里的,剪切板中保存的*不 ...

  9. Retrofit2 multpart多文件上传详解

    原文出处:http://www.chenkaihua.com/2016/04/02/retrofit2-upload-multipart-files.html Retrofit2是目前很流行的andr ...

最新文章

  1. 十五、Redis三种特殊类型之二HyperLoglog
  2. chrome自动调节窗口大小插件_高效使用Chrome浏览器的10个技巧
  3. 深入理解Netty高性能网络框架
  4. go语言map遍历时删除是安全的, 且可以完全删除
  5. /etc/ssh/sshd_config 关建字:PermitRootLogin no  禁示以root身份登录服务器
  6. Unity UGUI——Rect Transform包裹(Anchor Presets)
  7. 研讨会 | CCF TF 第 17 期:认知计算产业化落地
  8. cadence导入dxf文件_DXF如何导入为图纸?
  9. Python中ASCII码的数字和字符的转换
  10. signal(SIGHUP, SIG_IGN)的含义
  11. DTcms-【无限级别分类设计】
  12. IM 产品设计思考(4)- 问答机器人
  13. android 锁屏代码分析,锁屏分析(Android9.0)
  14. 云计算大数据基础知识点
  15. 刁生富:《重估:人工智能与人的生存》
  16. 沉浸式夜游的发展应充分挖掘文化内涵
  17. 如何使用ubuntu编译stm32程序
  18. matlab程序神经网络的,matlab 通用神经网络代码(转)
  19. 操作系统--第五章 虚拟存储器--习题答案
  20. 51单片机之程序下载

热门文章

  1. 使用 Styled Components 编写样式化组件
  2. C++学习笔记:const和mutable的多种用法【Cherno】
  3. 模糊的照片可以变清晰吗?
  4. 智慧校园,突破信息化管理困境
  5. 四、SOCKET 协议
  6. java数组下标0_Java语言中数组元素下标从0开始。
  7. Tesseract简介
  8. 思维导图培训三:思维导图的应用
  9. HTTP 响应状态码
  10. surface linux双系统,关于双系统问题。