浅谈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学习笔记之jQuery选择器的使用
Dec 22 Javascript
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
Apr 25 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
Mar 05 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
老生常谈js动态添加事件--- 事件委托
Jul 19 Javascript
Javascript函数中的arguments.callee用法实例分析
Sep 16 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
Dec 23 Javascript
jQuery实现左右滑动的toggle方法
Mar 03 jQuery
vue实现拖拽的简单案例 不超出可视区域
Jul 25 Javascript
vue 父组件通过v-model接收子组件的值的代码
Oct 27 Javascript
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
提高PHP编程效率的方法
2013/11/07 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
使用PHP开发留言板功能
2019/11/19 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
从python读取sql的实例方法
2020/07/21 Python
Python类的继承super相关原理解析
2020/10/22 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
爱情保证书范文
2014/02/01 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
2014年宣传工作总结
2014/11/18 职场文书
春节晚会开场白
2015/05/29 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书