formData 对象 Content-Type 类型

Posted zhangym118

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了formData 对象 Content-Type 类型相关的知识,希望对你有一定的参考价值。

 

FormData

  FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据(keyed data),而独立于表单使用。如果表单enctype属性设为multipart/form-data ,则会使用表单的submit()方法来发送数据,从而,发送数据具有同样形式。

 

创建 FormData 对象

  调用 append() 方法添加字段

var formData = new FormData();

formData.append("username", "Groucho");
formData.append("accountnum", 123456); //数字123456会被立即转换成字符串 "123456"
  formData.append(‘file‘, file, file.name)

 

FormData 与 Object 的区分

  都是 Object 的成员,可以理解为二者的格式不同。

  formData是一种数据格式,和JSON类似。不过 js 的 Object中目前还不包含 JSON 这种格式。

 

常见的 Content-Type 类型

  http协议是以ASCII码传输,建立在TCP/IP协议之上的应用层规范;

  该规范把HTTP请求分为三个部分:状态行、请求头、消息主体。

  在使用post进行请求的时候,数据发送出去,只有当浏览器解析成功才具有意义。

  对于一般的服务器语言,例如php、python等都内置了自动解析常见数据格式的功能;而服务器是根据请求头 headers 中的 content-type

 

  (1)application/x-www-form-urlencode

         浏览器的原生form表单,如果不设置 enctype 属性,最终将会以application/x-www-form-urlencode方式提交数据;像jquery、Qwrap的ajax,content-type默认值都是 application/x-www-form-urlencode

 

  (2)multipart/form-data

    利用表单长传文件的时候,必须让 form 的 enctyped 等于这个值;这个格式一般是用来上传文件的,各大服务端语言对他也有着良好的支持

 

  常见的媒体格式类型如下:

  •     text/html : HTML格式
  •     text/plain :纯文本格式      
  •     text/xml :  XML格式
  •     image/gif :gif图片格式    
  •     image/jpeg :jpg图片格式 
  •     image/png:png图片格式

   以application开头的媒体格式类型:

  •    application/xhtml+xml :XHTML格式
  •    application/xml     : XML数据格式
  •    application/atom+xml  :Atom XML聚合格式    
  •    application/json    : JSON数据格式
  •    application/pdf       :pdf格式  
  •    application/msword  : Word文档格式
  •    application/octet-stream : 二进制流数据(如常见的文件下载)
  •    application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

 


以上是关于formData 对象 Content-Type 类型的主要内容,如果未能解决你的问题,请参考以下文章

FormData和Payload

FormData 和 Content-Type: multipart/form-data

axios+FormData文件上传

data params content-type formdata 请求注意点笔记

data params content-type formdata 请求注意点笔记

formdata 和 Payload 区别