前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue拦截器qs

vue拦截器qs

作者头像
py3study
发布2021-03-11 11:12:52
8130
发布2021-03-11 11:12:52
举报
文章被收录于专栏:python3

一、概述

什么是qs

qs是一个流行的查询参数序列化和解析库。可以将一个普通的object序列化成一个查询字符串,或者反过来将一个查询字符串解析成一个object,帮助我们查询字符串解析和序列化字符串。

vue中qs安装使用

打开控制台输入:npm install qs 在main.js中导入qs插件:import qs from 'qs' 在main.js中配置全局属性:Vue.prototype.$qs = qs

方法

qs.parse()

qs.parse()是将URL解析成对象的形式

代码语言:javascript
复制
const str = "username='admin'&password='admin'" 
console.log(qs.parse(str)) // Object { username: "admin", password: "admin" }

qs.stringify()

qs.stringify()是将对象 序列化成URL的形式,以&进行拼接

代码语言:javascript
复制
qs.stringify({username:'admin', password:'admin'})
//username=admin&password=admin

二、参数处理

一般参数

代码语言:javascript
复制
await this.$axios({
          method: 'post',
          url: url,
          data: this.$qs.stringify(params),  // 将js对象转换成字符串格式
        })

数组参数

注意:对于数组参数,不能使用一般参数的形式。

比如原参数

代码语言:javascript
复制
{"id":3,"title":"python 开发实战","price":"98.60","pub_date":"2020-05-05","publish":"中国青年出版社","authors":[2]}

传给后端接收时,会变成

代码语言:javascript
复制
{'id': ['3'], 'title': ['python 开发实战'], 'price': ['98.60'], 'pub_date': ['2020-05-05'], 'publish': ['中国青年出版社'], 'authors[0]': ['2']}

发现问题没有,后端接收authors时,变成了authors[0],显然是不能接受的。

怎么解决呢?

代码语言:javascript
复制
await this.$axios({
          method: 'post',
          url: url,          
          data: this.$qs.stringify(params,{arrayFormat: 'repeat', allowDots: true})
        })

说明:

arrayFormat 可以格式化数组参数,有3种形式,这里选择repeat就可以了。

allowDots 启用点表是法

例如:

代码语言:javascript
复制
let data = 'a.b=c';
qs.parse(data,{allowDots:true});//{a:{b:'c'}}

增加2个参数后,后端接收,就正常了,比如:

代码语言:javascript
复制
{'id': ['3'], 'title': ['python 开发实战'], 'price': ['98.60'], 'pub_date': ['2020-05-05'], 'publish': ['中国青年出版社'], 'authors': ['2']}

本文参考链接:

https://www.pianshen.com/article/46821345921/

http://www.manongjc.com/detail/17-icboyofmvshsgwz.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
    • 什么是qs
      • vue中qs安装使用
        • 方法
          • qs.parse()
            • qs.stringify()
            • 二、参数处理
              • 一般参数
                • 数组参数
                相关产品与服务
                文件存储
                文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档