axios的参数传递方式
1:get
Axios.get('url', {
params: {
id: 123,
name: 'DAN',
}
})
2:post
Axios.post('url', {
id: 123,
name: 'DAN',
})
3:put
Axios.put('url', {
id: 123,
name: 'DAN',
})
或者我们之间写data:{
id: 123,
name: ‘DAN’,
}
或者data:{
A
}
数据返回中A:{
id: 123,
name: ‘DAN’,
}
但其实还会有很多问题
我们传递的参数在get方法下显示什么都没传递,这一点我现在还没搞清楚明白,有空会看看
还有就是传递的参数会以{id:“123”,name:“DAN”}的形式传递而不是formdata形式
将其转化就是我们要做的事情
这里就我了解的有两种方法
1:引入import Qs from ‘qs’
在此操作前先安装QS npm install --save qs
然后引入import Qs from ‘qs’
axios({
url: '/user',
method: 'post',
data: {
id: 123,
name: 'DAN',
},
transformRequest: [function (data) {
data = Qs.stringify(data);
return data;
}],
headers:{'Content-Type':'application/x-www-form-urlencoded'}
})
})
其中加上
transformRequest: [function (data) {
data = Qs.stringify(data);
return data;
}],
headers:{'Content-Type':'application/x-www-form-urlencoded'}
才是有用的
2:
axios({
url: '/user',
method: 'post',
data: {
id: 123,
name: 'DAN',
},
transformRequest: [function (data) {
// Do whatever you want to transform the data
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
其中
transformRequest: [function (data) {
// Do whatever you want to transform the data
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
这样就可以产生formdata