浅谈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
Feb 25 Javascript
javascript 贪吃蛇实现代码
Nov 22 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
Mar 10 Javascript
jqGrid jQuery 表格插件测试代码
Aug 23 Javascript
优化Node.js Web应用运行速度的10个技巧
Sep 03 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 Javascript
通过示例彻底搞懂js闭包
Aug 10 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 Javascript
js逆向解密之网络爬虫
May 30 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
Nov 12 Javascript
javascript this指向相关问题及改变方法
Nov 19 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的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
jquery中ajax学习笔记4
2011/10/16 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
SVG实现时钟效果
2018/07/17 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
美国在线印刷公司:PsPrint
2017/10/12 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
this关键字的作用
2016/01/30 面试题
运动会入场词60字
2014/02/15 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书