介绍
由于后端接口请求对格式有要求,一些情况需要用到FormData的格式。
实现方法1
var params = new FormData();
params.append('item_link',encodeURIComponent(this.link));
params.append('type', 1 );
axios.post(url, params)
.then(res => {
......
});
需要传递多个字段名不一样的参数,需要一个个的拼接上(append),这样在多个参数的时候,就不是很好的数据处理方式。
实现方法2
- 使用qs方法,qs是一个npm仓库所管理的包,使用命令进行安装。
- qs是一个url参数转化(parse和stringify)的js库,可以将参数格式转化为接口所需要的格式。
安装
npm install qs
使用
- 引入qs
import Qs from 'qs';
- 使用
let params = {
item_link: this.link,
type: 1
};
axios.post(url, Qs.stringify(params))
.then(res => {
......
});
- 扩展
- qs.parse()将URL解析成对象的形式
const Qs = require('qs');
let url = 'method=query_sql_dataset_data&projectId=85&appToken=7d22e38e-5717-11e7-907b-a6006ad3dba0';
Qs.parse(url);
console.log(Qs.parse(url));
- qs.stringify()将对象 序列化成URL的形式,以&进行拼接
const Qs = require('qs');
let obj= {
method: "query_sql_dataset_data",
projectId: "85",
appToken: "7d22e38e-5717-11e7-907b-a6006ad3dba0",
datasetId: " 12564701"
};
Qs.stringify(obj);
console.log(Qs.stringify(obj));
总结
qs 为插件,便于数据转换,遇到特殊数据格式的时候,可以使用。