vue 中 get / delete 傳遞數(shù)組參數(shù)方法
在前后端交互的時(shí)候,有時(shí)候需要通過(guò) get 或者 delete 傳遞一個(gè)數(shù)組給后臺(tái),但是這樣直接傳遞后臺(tái)無(wú)法接收數(shù)據(jù),因?yàn)樵趥鬟f的過(guò)程中數(shù)組參數(shù)會(huì)被轉(zhuǎn)譯,結(jié)果如下:
參數(shù):{ name : [ 1, 2, 3 ] }
轉(zhuǎn)譯效果:http://aaa.com?name[]=1&name[]=2&name[]=3
目標(biāo)效果:http://aaa.com?name=1&name=2&name=3
解決辦法:
使用 qs 插件 將數(shù)組參數(shù)序列化
1、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'
安裝
npm install qs
使用
//在 axios 請(qǐng)求攔截器里面 import qs from 'qs' axios.interceptors.request.use(request => { if (request.method === 'delete' || request.method === 'get') { request.paramsSerializer = function(params) { return qs.stringify(params, { arrayFormat: 'repeat' }) } } return request },(error) =>{ return Promise.reject(error); })
知識(shí)點(diǎn)擴(kuò)展:Vue中 的Get , Delete , Post , Put 傳遞參數(shù)
剛剛接觸Vue2.5以上版本的新手程序員 不了解怎樣傳遞參數(shù)的僅供參考
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> /*為了前后端更好的交互效果 引入axios.js 這個(gè)js文件*/ <script type="text/javascript" src="js/axios.js"></script> <script type="text/javascript"> // axios請(qǐng)求參數(shù)傳遞 // axios get請(qǐng)求傳參 // 傳統(tǒng)格式的 get 請(qǐng)求 axios.get('http://localhost:3000/axios?id=123') .then(function(ret){ console.log(ret.data) }) // restful 格式的 get 請(qǐng)求 axios.get('http://localhost:3000/axios/123') .then(function(ret){ console.log(ret.data) }) // 攜帶參數(shù)的 get 請(qǐng)求 axios.get('http://localhost:3000/axios', { params: { id: 789 } }).then(function(ret) { console.log(ret.data) }) // // axios delete 請(qǐng)求傳參 axios.delete('http://localhost:3000/axios', { params: { id: 111 } }).then(function(ret) { console.log(ret.data) }) //----------------------------------- // 使用 axios 進(jìn)行 post 請(qǐng)求,默認(rèn)傳遞 json 數(shù)據(jù) axios.post('http://localhost:3000/axios', { 'uname': 'lisi', 'pwd': 123 }).then(function(ret) { console.log(ret.data) }) // 使用 axios 進(jìn)行 post 請(qǐng)求,傳遞 form 表單數(shù)據(jù) var params = new URLSearchParams(); params.append('uname', 'zhangsan'); params.append('pwd', '111'); axios.post('http://localhost:3000/axios', params) .then(function (ret) { console.log(ret.data) }) // axios put 請(qǐng)求傳參 axios.put('http://localhost:3000/axios/123', { uname: 'lisi', pwd: 123 }).then(function(ret) { console.log(ret.data) }) // 對(duì)于 axios 來(lái)說(shuō),在 get 和 delete 請(qǐng)求中,參數(shù)要放入到 params 屬性下 // 在 post 和 put 請(qǐng)求中,參數(shù)直接放入到 對(duì)象中 </script> </body> </html>
向后臺(tái)發(fā)起請(qǐng)求的代碼( 有的公司服務(wù)端的程序員不給寫(xiě) ) 前端程序員僅供才考
app.get('/adata', (req, res) => { res.send('Hello axios!') }) app.get('/axios', (req, res) => { res.send('axios get 傳遞參數(shù)' + req.query.id) }) app.get('/axios/:id', (req, res) => { res.send('axios get (Restful) 傳遞參數(shù)' + req.params.id) }) app.delete('/axios', (req, res) => { res.send('axios get 傳遞參數(shù)' + req.query.id) }) app.delete('/axios/:id', (req, res) => { res.send('axios get (Restful) 傳遞參數(shù)' + req.params.id) }) app.post('/axios', (req, res) => { res.send('axios post 傳遞參數(shù)' + req.body.uname + '---' + req.body.pwd) }) app.put('/axios/:id', (req, res) => { res.send('axios put 傳遞參數(shù)' + req.params.id + '---' + req.body.uname + '---' + req.body.pwd) })
到此這篇關(guān)于vue 中 get / delete 傳遞數(shù)組參數(shù)方法的文章就介紹到這了,更多相關(guān)vue 傳遞數(shù)組參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談vue中使用圖片懶加載vue-lazyload插件詳細(xì)指南
本篇文章主要介紹了淺談vue中使用圖片懶加載vue-lazyload插件詳細(xì)指南,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-10-10vue3+vite使用環(huán)境變量.env的一些配置情況詳細(xì)說(shuō)明
開(kāi)發(fā)中經(jīng)常會(huì)使用環(huán)境變量,Vite相比于Webpack也有一定的變化,下面這篇文章主要給大家介紹了關(guān)于vue3+vite使用環(huán)境變量.env的一些配置情況說(shuō)明的相關(guān)資料,需要的朋友可以參考下2022-12-12vue3使用Electron打包成exe的方法與打包報(bào)錯(cuò)解決
在前端開(kāi)發(fā)中,Electron是一種常用的工具,它允許開(kāi)發(fā)者使用Web技術(shù)構(gòu)建桌面應(yīng)用程序,本文主要介紹了vue3使用Electron打包成exe的方法與打包報(bào)錯(cuò)解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06使用el-row及el-col頁(yè)面縮放時(shí)出現(xiàn)空行的問(wèn)題及解決
這篇文章主要介紹了使用el-row及el-col頁(yè)面縮放時(shí)出現(xiàn)空行的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03vue_drf實(shí)現(xiàn)短信驗(yàn)證碼
我們?cè)谧鼍W(wǎng)站開(kāi)發(fā)時(shí),登錄頁(yè)面很多情況下是可以用手機(jī)號(hào)接收短信驗(yàn)證碼,本文主要介紹了vue_drf實(shí)現(xiàn)短信驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07