浅谈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 相关文章推荐
JavaScript监测ActiveX控件是否已经安装过的代码
Sep 02 Javascript
js 目录列举函数
Nov 06 Javascript
jQuery get和post 方法传值注意事项
Nov 03 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
Dec 23 Javascript
jquery实现图片左右切换的方法
May 07 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
轻松实现javascript数据双向绑定
Nov 11 Javascript
JavaScript字符串对象
Jan 14 Javascript
EasyUI为Numberbox添加blur事件的方法
Mar 05 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
layui实现动态和静态分页
Apr 28 Javascript
使用refresh_token实现无感刷新页面
Apr 26 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
PHP如何抛出异常处理错误
2011/03/02 PHP
PHP7常量数组用法分析
2016/09/26 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
基于jQuery的history历史记录插件
2010/12/11 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
搬家公司的创业计划书
2014/01/01 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
同乡会致辞
2015/07/30 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS