axios的get請(qǐng)求傳入數(shù)組參數(shù)原理詳解
axios 發(fā)送 get 請(qǐng)求
axios 發(fā)送 get 請(qǐng)求的一般方式如下:
axios.get(url,{params:{ a:1 }})
但是,如果 params 里有數(shù)組參數(shù)的話,上面的方法就會(huì)帶來問題。
例如, 這里發(fā)送的請(qǐng)求參數(shù) b 是數(shù)組:
axios.get(url,{params:{ a:1, b:[1,2] }})
這時(shí)候,后端 Django 用 request.GET.getlist('b')
獲取到的參數(shù) b 一直是 []
.
原因
原因是對(duì)數(shù)組的序列化有多種方式,我們需要前后端統(tǒng)一序列化方式,才能夠正確解碼。
Django 的 request.GET.getlist('b')
, 對(duì)請(qǐng)求參數(shù) b 的序列化要求是這樣子的
b=1&b=2
也就是說,用&連接數(shù)組中的元素,這并不是 axios 默認(rèn)的序列化方法。
解決方法
需要指定 axios 的序列化方式,我們可以用 paramsSerializer
參數(shù)指定序列化函數(shù)。
更簡(jiǎn)單的方式是使用 qs
庫:
import qs from "qs"; axios.get(url,{ params:{ a:1, b:[1,2] }, paramsSerializer: function (params) { return qs.stringify(params, { arrayFormat: "repeat" }); }, })
以上就是axios的get請(qǐng)求傳入數(shù)組參數(shù)原理詳解的詳細(xì)內(nèi)容,更多關(guān)于axios get請(qǐng)求傳入數(shù)組參數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript實(shí)現(xiàn)列出數(shù)組中最長(zhǎng)的連續(xù)數(shù)
這篇文章主要介紹了JavaScript實(shí)現(xiàn)列出數(shù)組中最長(zhǎng)的連續(xù)數(shù)的方法及使用,需要的朋友可以參考下2014-12-12關(guān)于JavaScript中事件綁定的方法總結(jié)
下面小編就為大家?guī)硪黄狫avaScript中事件綁定的方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10js實(shí)現(xiàn)圖片和鏈接文字同步切換特效的方法
這篇文章主要介紹了js實(shí)現(xiàn)圖片和鏈接文字同步切換特效的方法,涉及javascript操作文字及圖片的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02js中繼承的幾種用法總結(jié)(apply,call,prototype)
本篇文章主要介紹了js中繼承的幾種用法總結(jié)(apply,call,prototype) 需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12Electron中關(guān)于靜態(tài)資源加載問題的解決方案
通常,我們?cè)谑褂胑lectron框架的時(shí)候會(huì)使用到loadFile/loadURL進(jìn)行頁面的加載,分別是加載本地文件和加載網(wǎng)絡(luò)文件,當(dāng)nuxtjs/nextjs想引入到electron中顯示時(shí),你會(huì)遇到資源路徑引用的問題,所以本文給大家介紹了Electron中關(guān)于靜態(tài)資源加載問題的解決方案2024-12-12