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 : 二进制流数据(如常见的文件下载)