浅谈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与CSS复习(二)
Jun 29 Javascript
js显示时间 js显示最后修改时间
Jan 02 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
May 14 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
May 25 Javascript
node.js cookie-parser 中间件介绍
Jun 06 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
Nov 08 Javascript
vue微信分享插件使用方法详解
Feb 18 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
Mar 08 Javascript
JavaScript canvas实现雨滴特效
Jan 10 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下pdo的mysql事务处理用法实例
2014/12/27 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
2015/03/24 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
Python模块 _winreg操作注册表
2020/02/05 Python
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
应用艺术专业个人的自我评价
2014/01/03 职场文书
12月红领巾广播稿
2014/02/13 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
遗失证明范文
2015/06/19 职场文书