vue使用axios的post提交方式,參數為數組

前兩天同事寫項目時,遇到一個問題。項目為vue的項目,axios提交post請求,后端收到的參數格式不正確。

同事提交的參數如下:

a[0]: 1,
a[1]: 2,
a[2]: 3

后端需要的的參數格式:

a[]: 1,
a[]: 2,
a[]: 3

查閱各種資料后,發(fā)現使用qs對參數進行序列化方式是最方便的。

使用qs對字符串進行序列化默認格式:
qs.stringify({ a: [1, 2, 3] });
//  'a[0]=1&a[1]=2&a[2]=3'
通過設置indices為false可以實現如下效果
qs.stringify({ a: [1, 2, 3] }, { indices: false });
//  'a=1&a=2&a=3'
而我們后端希望的數據格式,可以通過arrayformat來實現:
qs.stringify({ a: [1, 2, 3 ] }, { arrayFormat: 'indices' });
//  'a[0]=1&a[1]=2&a[2]=3'

qs.stringify( { a: [1, 2, 3 ]} , { arrayFormat: 'brackets' });
//  'a[]=1&a[]=2&a[]=3'

qs.stringify( {a: [1, 2, 3 ]}, { arrayFormat: 'repeat' } );
//  'a=1&a=2&a=3'

更多qs功能參考以下網址:
https://www.npmjs.com/package/qs

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容