axios是一个nodejs的请求工具,功能强大,同时。。也有很多坑,记录下自己爬过得坑
- axios 中的基础用法
res = await axios({
url: 'http://url/inteface',
method: 'post',
data: data,
params:params
});`
url 接口地址 method 方法(ps:axios支持很多 不过最常用的就是 get post)
data是post带过去的参数
params是get带过去的参数
- axios 中 headers
res = await axios({
method: 'post',
url: deal_interface,
params :deal_param,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
接口只接受form形式的参数,那你就要显式指定headers 否则接口容易收不到数据。不填好像默认是json形式。
- data params 参数
res = await axios({
method: 'post',
url: deal_interface,
// data: deal_param,
params :deal_param,
transformRequest: [function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
正常post参数是data,get参数是params。但是有些接口比较奇葩,他是post接口但是参数要放在url后面跟get一样。。这个坑了我一下午。
这种post后面带参数的形式可以用 transformRequest 来实现,如demo所示。
axios还是很强的,详见文档 https://www.npmjs.com/package/axios