浅谈vue中get请求解决传输数据是数组格式的问题


Posted in Javascript onAugust 03, 2020

qs的stringify接收2个参数,第一个参数是需要序列化的对象,第二个参数是转化格式,一般默认格式是给出明确的索引,如:arr[0]=1&arr[1]=2

//indices是index的复数格式,因此indices是索引的意思
//bracket是括号的意思,因此arrayFormat:'brackets'代表数组下标为空[]

qs.stringify({ arr: [1,2,3] }, { indices: false }) //arr=1&arr=2&arr=3
qs.stringify({ arr: [1,2,3] }, { arrayFormat: 'indices' }) //arr[0]=1&arr[1]=2&arr[2]=3
qs.stringify({ arr: [1,2,3] }, { arrayFormat: 'brackets' }) //arr[]=1&arr[]=2&arr[]=3
qs.stringify({ arr: [1,2,3] }, { arrayFormat: 'repeat' }) //arr=1&arr=2&arr=3

qs的parse()使用

如果接口需要获取get请求接口的请求数据,可以使用parse(),将拼接在地址的参数数据转换为对象

let url = "111.111.3.203:8080/getList?id=1&name=huahua&arr=a&arr=b"
let splitObj = url.split('?')[1]
qs.parse(splitObj )  //{ id: '1', name: 'huahua', arr: ['a','b'] }

qs.stringify和JSON.stringify的区别

let obj = { a: 1, b: 2 }
qs.stringify(obj)  //a=1&b=2
JSON.stringify(obj) // "{'a': 1, 'b': 2}"

qs解决数组参数问题

安装axios,qs

npm install qs

npm install axios -S

在main.js中引入qs

import Vue from 'vue'
import qs from 'qs'
import axios from 'axios'
Vue.prototype.$qs = qs;  //qs全局挂载在vue实例上
Vue.prototype.$http = axios; //axios全局挂载在vue实例上

在组件中使用

get请求的请求参数是将数据放在config的params中,实际是通过“&”拼接在url上

如果请求参数是数组arr=[1,2,3],get请求不对数组做任何处理,则传递给后端的接口是

"url地址?arr[]=1&arr[]=2&arr[]=3",接口会报错,因为识别不了“[]”这个符号

需要对数组进行修改,需要通过qs的stringify()方法将数组序列化,则传递给后端的接口是 “url地址?arr=1&arr=2&arr=3”,接口不会报错

this.arr = [1,2,3]
//写法一,直接使用qs的stringify()
this.$http.get('url地址', {
 params: {
 arr: this.$qs.stringify(this.arr)  //数组拼接在url地址 url地址?arr=1&arr=2&arr=3
 }
}).then(() => {
}) 

//写法二 ,使用axios提供的paramsSerializer序列化函数
this.$http.get('url地址', {
 params: {
 arr: this.arr  //数组拼接在url地址 url地址?arr=1&arr=2&arr=3
 },
 paramsSerializer: (params) => {
 return this.$qs.stringify(params) 
 }
}).then(() => {
})

以上这篇浅谈vue中get请求解决传输数据是数组格式的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery DIV弹出效果实现代码
Jul 03 Javascript
Dom 结点创建 基础知识
Oct 01 Javascript
JQquery的一些使用心得分享
Aug 01 Javascript
javascript闭包概念简单解析(推荐)
Jun 03 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
微信小程序中用WebStorm使用LESS
Mar 08 Javascript
详解Vue生命周期的示例
Mar 10 Javascript
H5手机端多文件上传预览插件
Apr 21 Javascript
form表单序列化详解(推荐)
Aug 15 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
Sep 26 Javascript
原生JS实现微信通讯录
Jun 18 Javascript
原生js实现分页效果
Sep 23 Javascript
VUE使用axios调用后台API接口的方法
Aug 03 #Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
Aug 03 #Javascript
js数组中去除重复值的几种方法
Aug 03 #Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
Aug 03 #Javascript
javascript运行机制之执行顺序理解
Aug 03 #Javascript
解决vue+elementui项目打包后样式变化问题
Aug 03 #Javascript
vue实现PC端分辨率适配操作
Aug 03 #Javascript
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
推荐25款php中非常有用的类库
2014/09/29 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
nodejs多版本管理总结
2018/04/03 NodeJs
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
使用Python实现windows下的抓包与解析
2018/01/15 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
美国时尚女装在线:Missguided
2016/12/03 全球购物
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
环境工程专业自荐信
2014/03/03 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
学党史心得体会
2014/09/05 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python