之前一直使用 Ajax 请求数据, 底层都是 jQuery 封装好的. 导致使用 axios 时忽略了一些问题 (在 POST 请求中, 客户端和服务端须遵守同一种编码格式才能正确解析数据)
Content-type 决定了数据编码格式, 在请求头 header 中设置 (没有使用 axios 及小程序自带的数据请求时, 一直不知道这玩意)
一, GET 请求
由于 GET 请求没有请求实体, 参数附在 URL 后面, 所以不需要设置 Content-type
二, POST 请求
常用的编码类型有这几种: 1.application/x-www-form-urlencoded(常用于原生 form 表单提交);2.multipart/form-data(常用于文件传输);3.application/JSON(常用 JSON 格式编码)
注意: 不同的 Content-type 需要对应不同的参数格式
1.application/x-www-form-urlencoded. 参数格式: 需要将正常的对象转化
例如: var data={
- name:'小明',
- age:'18'
- }
- data=qs.stringify(data)
注意: qs.stringify 将对象序列化. 使用 qs.stringify 函数时需要引入 qs(通过 NPM 安装)
2.multipart/form-data. 参数格式: form-data
例如: var data=new FormData();
- data.append("name","小明");
- data.append("age","18");
3.application/JSON. 参数格式: JSON 对象
例如: var data={
- "name","小明",
- "age","18"
- }
来源: http://www.jianshu.com/p/815e401bb267