使用 application/x-www-urlencoded 形式的post請求
在一般情況下,我們使用axios進行post請求是這樣的
axios.post('url', {
username,
password,
})
.then((res) => { ... })
.catch((res) => { ... });
當我們需要創(chuàng)建一些信息,調(diào)用接口上傳一些數(shù)據(jù)的時候,我們用以上的方式會發(fā)生500錯誤,原因是axios默認是application/json格式的,即使添加了請求頭 最后的content-type的形式還是 json 的,需要進行字符串的轉(zhuǎn)換才能成功請求。
解決方法
1.一個比較常用的方法是: 使用URLSearchParams API
const params = new URLSearchParams();
params.append('username', username);
params.append('password', password);
axios.post('url', params)
.then((res) => {...})
.catch((res) => {...});
2.使用qs序列化json對象(在某種情況下會出現(xiàn)中文亂碼,需要后端過濾支持)
var qs = require('qs');
axios.post('url', qs.stringify({
'username': username,
'password': 'password'
}))
.then((res) => {...})
.catch((res) => {...});