zoukankan      html  css  js  c++  java
  • vue拦截器qs

    一、概述

    什么是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解析成对象的形式

    const str = "username='admin'&password='admin'" 
    console.log(qs.parse(str)) // Object { username: "admin", password: "admin" }

    qs.stringify()

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

    qs.stringify({username:'admin', password:'admin'})
    //username=admin&password=admin

    二、参数处理

    一般参数

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

    数组参数

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

    比如原参数

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

    传给后端接收时,会变成

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

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

    怎么解决呢?

    await this.$axios({
              method: 'post',
              url: url,
              data: this.$qs.stringify(params,{arrayFormat: 'repeat', allowDots: true})
            })

    说明:

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

    allowDots 启用点表是法

    例如:

    let data = 'a.b=c';
    qs.parse(data,{allowDots:true});//{a:{b:'c'}}

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

    {'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

  • 相关阅读:
    C语言volatile
    2017-10-12 下一步计划
    关于步进电机的半流设置、衰减设置
    压力校准仪开发-----步进电机驱动
    kei中实现在线仿真看波形
    42步进电机与57步进电机
    网上的说TB6560存在的问题
    TB6560步进电机驱动板
    继承
    iOS设计模式——单例模式
  • 原文地址:https://www.cnblogs.com/xiao987334176/p/14419877.html
Copyright © 2011-2022 走看看