Content-Type的属性值

551 阅读2分钟

Http 协议的消息头中 Content-Type 表示请求和响应中的媒体类型信息,用来告诉服务端如何处理请求的数据,以及告诉客户端如何解析响应的数据。下面说几种在前端常用的 Content-Type 属性值以及数据的上传形式

application/x-www-form-urlencoded

这种提交方式的数据表现形式为:数据以键值对的形式存在,通过 = 连接键值,以 & 串连其所有键值对,如

var obj = {
  a: 1,
  b: 2,
  c: 3
}
// obj 在数据提交时转换为下面的字符串
// ${post_url}?a=1&b=2&c=3

以这种方式提交数据时,对于非字母数字的数据需要先进行 encode 再进行字符串的拼接

application/json

这种提交方式的数据是一个标准的 json 对象,在提交数据时,只需将 json 对象转成字符串。如

var obj = {
  a: 1,
  b: 2,
  c: 3
}
var objStr = JSON.stringify(obj)

以这种方式提交数据时不需关心数据的格式有多复杂,只需要确保最终的数据是一个标准的json字符串。

multipart/form-data

form-data的主要是用于文件以二进制的方式上传,使用时:

var formData = new FormData()
formData.append(key, value)
// 将键名和值通过append方法添加到 FormData 对象中,最终将对象上传到后台

以下还有一些不常用的 Content-Type 的属性值

  • text/html : HTML格式
  • text/plain :纯文本格式
  • text/xml : XML格式
  • image/gif :gif图片格式
  • image/jpeg :jpg图片格式
  • image/png:png图片格式
  • application/xhtml+xml :XHTML格式
  • application/xml: XML数据格式
  • application/atom+xml :Atom XML聚合格式
  • application/pdf:pdf格式
  • application/msword : Word文档格式
  • application/octet-stream : 二进制流数据(如常见的文件下载)