# 1. Content-Type 类型

application/x-www-form-urlencoded, multipart/form-data, application/json, application/xml 这四个是ajax的请求,表单提交或上传文件的常用的资源类型。 form表单中可以定义enctype属性,该属性的含义是在发送到服务器之前应该如何对表单数据进行编码。默认的情况下,表单数据会编码为 "application/x-www-form-unlencoded" enctype常用的属性值如下:

  • application/x-www-form-unlencoded: 在发送前编码所有字符(默认情况下);
  • multipart/form-data, 不对字符编码。在使用文件上传时候,使用该值。

# 1.1. application/x-www-form-urlencoded 主要用于如下:

  1. 最常见的POST提交数据方式。
  2. 原生form默认的提交方式(可以使用enctype指定提交数据类型)。
  3. jquery,zepto等默认post请求提交的方式。

如上默认提交的 contentTypeapplication/x-www-form-urlencoded,此时提交的数据将会格式化成:username=111&age=2;

  • 如果请求类型type是GET的话,那么格式化的字符串将直接拼接在url后发送到服务端;
  • 如果请求类型是POST, 那么格式化的字符串将放在http bodyForm Data中发送。

# 1.2. multipart/form-data

使用表单上传文件时,必须指定表单的 enctype属性值为 multipart/form-data. 请求体被分割成多部分,每部分使用 --boundary分割;

# 1.3. application/json

在http请求中,Content-Type都是默认的值 application/x-www-form-urlencoded, 这种编码格式的特点是:name/value值对,每组之间使用&连接,而namevalue之间是使用 = 连接,比如 key=xxx&name=111&password=123456;键值对一般的情况下是没有什么问题的,但是在一些复杂的情况下,比如需要传一个复杂的json对象,也就是对象嵌套数组的情况下,建议使用application/json传递比较好,

如上我们可以看到json格式提交的数据会显示 Request Payload;

注意:请求头Content-TypeType的T一定大写。