默認情況下筐咧,axios將JavaScript對象序列化為JSON。 要以application / x-www-form-urlencoded格式發(fā)送數(shù)據(jù)磷醋,您可以使用以下選項之一鸽心。
const qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));
或者以另一種方式(ES6)
import qs from 'qs';
const data = { 'bar': 123 };
const options = {
method: 'POST',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
data: qs.stringify(data),
url,
};
axios(options);
詳解:
axios默認的content-type是application/json
也就是java后端經(jīng)常讓你把參數(shù)放在body中的那種格式
傳輸?shù)臉邮绞?br>
requestbody
{
name:xxx,
age:xxx
}
如果使用的qs進行序列化
那么content-type就是application/x-www-form-urlencoded
也就是常說的表單提交
傳輸?shù)臉邮绞?br>
formdata
name:xxx,
age:xxx
urlencoding后是
name=xxx&age=xxx
所以,實際上是否需要用qs
去序列化參數(shù)完全取決于后端要怎么接受數(shù)據(jù)