vue中g(shù)et請(qǐng)求如何傳遞數(shù)組參數(shù)

昨天在項(xiàng)目中遇到了 前端需要用get請(qǐng)求方式傳遞數(shù)組格式參數(shù)給后端,貼一下解決辦法

解決方案

1.qs插件

qs主要是增加一些安全性的查詢字符串解析和序列化字符串的庫(kù),qs的更多使用方式可以參考總結(jié)中提供的地址學(xué)習(xí)? ? ? ? ? ??

? ? qs.stringify({a:['b','c']},{arrayFormat:'indices'}) // 輸出結(jié)果:'a[0]=b&a[1]=c'2

? ? ?qs.stringify({a:['b','c']},{arrayFormat:'brackets'}) // 輸出結(jié)果:'a[]=b&a[]=c'3

? ? ?qs.stringify({a:['b','c']},{arrayFormat:'repeat'})? ?// 輸出結(jié)果:'a=b&a=c'4

? ? ?qs.stringify({a:['b','c']},{arrayFormat:'comma'})? ?// 輸出結(jié)果:'a=b,c'

上述我們列舉了qs中的序列化幾種配置,其中{ arrayFormat: 'repeat' }的序列化結(jié)果滿足我們的條件

2 axios配置

axios中有一個(gè)專門對(duì)數(shù)據(jù)進(jìn)行序列化的配置屬性paramsSerializer

paramsSerializer:function(params){returnQs.stringify(params,{arrayFormat:'repeat'})},

2.3 具體配置

我們可以在axios請(qǐng)求攔截器中對(duì)參數(shù)進(jìn)行序列化配置

axios.interceptors.request.use(async(config)=>{

//只針對(duì)get方式進(jìn)行序列化

if(config.method==='get'){

config.paramsSerializer=function(params){

returnqs.stringify(params,{arrayFormat:'repeat'})}}}


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

友情鏈接更多精彩內(nèi)容