起因,公司后臺(tái)使用restfull 風(fēng)格的api , 后臺(tái)接口他們已經(jīng)用個(gè)方法完全封裝好了,所以所有 請(qǐng)求的得在前端處理。
有個(gè)報(bào)表查詢 用數(shù)組 發(fā)送請(qǐng)求的, 正常用axios 發(fā)送請(qǐng)求后 后臺(tái)返回我發(fā)送的不是一個(gè)數(shù)組 。我當(dāng)場(chǎng)跑去和后臺(tái)撕逼,然后撕不贏 說我的請(qǐng)求不是正常的http請(qǐng)求。????? 可能是我太菜吧。然后去百度方法。
找到了qs 處理的方法。
復(fù)現(xiàn) 錯(cuò)誤的代碼
let data = {
a:'11',
b:[1,2,3]
}
let datas = await getInfo(data)
控制臺(tái)圖

Snipaste_2019-08-14_10-47-13.png
??? 當(dāng)場(chǎng)懵逼 數(shù)組不是這樣嗎?(確實(shí)不是這樣的的)
錯(cuò)誤代碼2
let data = {
a:'11',
b: JSON.stringif( [1,2,3])
}
let datas = await getInfo(data)
控制臺(tái)圖

Snipaste_2019-08-14_10-50-01.png
后臺(tái)說也不是這樣 ... 當(dāng)場(chǎng)奔潰
然后去網(wǎng)上找到了qs axios 自帶qs 可能也考慮了這個(gè)問題吧
在請(qǐng)求時(shí)加上一行代碼后
axios.get(url, {
params: {
ids: [1,2,3],
type: 1
},
paramsSerializer: params => {
return qs.stringify(params, { indices: false })
}})
也不對(duì)啊 他吧 數(shù)組下標(biāo)變成了 key

微信截圖_20190814110237.png

微信截圖_20190814110301.png
然后我去npm 上看了下qs 文檔 找到了下面這句話

qs.png
意思是 把 a[0]=1 變成 a=1&a=2&a=3 ???? WTF 網(wǎng)上代碼太不靠譜了吧
改變后
axios.get(url, {
params: {
ids: [1,2,3],
type: 1
},
paramsSerializer: params => {
return qs.stringify(params)
}})
最終正確的數(shù)據(jù)截圖

end.png
是它 是它 就是 它 正確的后臺(tái)要的格式.....