axios前端默认传递的数据类型是application/json,可以在headers中进行设置,默认传递格式为application/json。
如果传递application/json数据类型,需要利用JSON.stringfy将JSON对象转为JSON字符串,如下图:
function example(usernameValue,passwordValue) {
return axios.request({
method:'post',
url:baseUrl+'api/login',
data:JSON.stringfy({
username:usernameValue,
password:passwordValue
})
})
}
如果传递application/x-www-form-urlencoded数据类型,需要利用qs.stringfy将对象转为url字符串,如下图:
function example(usernameValue,passwordValue) {
return axios.request({
method:'post',
url:baseUrl+'api/login',
data:qs.stringify({
username:usernameValue,
password:passwordValue
}),
headers:{'content-type':'application/x-www-form-urlencoded'}
})
}
如果传递multipart/form-data数据类型,需要利用FormData将字符串转为formdata格式,如下图:
function example(file) {
//将file转成表单
const formData = new FormData();
formData.append('file',file);
return axios.request({
method:'post',
url:baseUrl+'file',
data:formData,
headers:{'content-type':'multipart/form-data'}
})
}
注意JSON.stringfy和qs.stringfy区别:
const data = {name:"zhangsan",age:"12"}
JSON.stringfy(data) => "{'name':'zhangsan','age':'12'}"
qs.stringfy(data) =>"name=zhangsan&age=12"