vue中get方法\post方法如何传递数组参数详解

 更新时间:2023年03月23日 11:49:17   作者:麻小橙  
在前后端交互的时候,有时候需要通过get或者delete传递一个数组给后台,下面下面这篇文章主要给大家介绍了关于vue中get方法\post方法如何传递数组参数,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

1、vue中get方法如何传递数组参数

直接放在对象中传递数组

export function getCrApplicationList(data) {
  var test = [‘111‘, ‘222‘]
  return request({
    url: ‘/applicant/CrApplication/List‘,
    method: ‘get‘,
    params: { test }
  })
}

但是这样的话后台是取不到值的,我们需要把数组变成如下这种格式:

test:111

test:222

首先找到axios.js,加如下代码:

if (config.method === ‘get‘) {
    // 如果是get请求,且params是数组类型如arr=[1,2],则转换成arr=1&arr=2
    config.paramsSerializer = function(params) {
      return qs.stringify(params, { arrayFormat: ‘repeat‘ })
    }
  }

如果get请求中参数是数组格式,则数组里每一项的属性名重复使用。

同样的,post方法传get方法的传参格式时候通用该方法。

封装的接口部分:

/**
 * @description 以post请求方式,传递array[]数组
 * @param {Array[integer]} idList
 * @param {integer} orderId
 * @return {*}
 */
export function doFuncTest(idListVal, orderId) {
    return request({
        url: '/xxxx/xxx',
        method: 'post',
        baseURL: '//192.168.xxx.xxx:xxxx/xxx/xxx/xxx',
        params: {
            idList: idListVal,
            orderId: orderId
        }
    })
}

拦截器部分:

if (config.method === 'post') {
    config.paramsSerializer = function(params) {
        return qs.stringify(params, { arrayFormat: 'repeat' })
    }
}

2、vue get与post传参方式

vue的封装接口中,post与get的传参方式是不同的

2.1post:用data传递参数

/**
 * 添加动物种类
 * @param {*} params 
 * @returns 
 */
export function AddAnimalType (params) {
  return request({
    url: baseUrl + '/addAnimalType',
    method: 'post',
    data: params
  })
}

调用代码:

下面的 this.formData 是在data中定义的列表里边包含了id等信息

    //新增
    insertAnimalType () {
      AddAnimalType(this.formData).then(response => {
        if (response.status == 0) {
          successMessage(response.statusText)
        }
        else {
          errMessage(response.statusText)
        }
      }).catch(error => {
        errorCollback(error)
      })
    },

2.2get:用params传递参数

/**
 * 根据Id获取详情
 * id id
 * @param {*} params 
 * @returns 
 */
export function selectById (params) {
  return request({
    url: baseUrl + '/selectById',
    method: 'get',
    params
  })
}

调用接口:

    //获取详情
    getDetail () {
      selectById({ animalId: this.formData.id }).then(response => {
        if (response.status == 0) {
          this.formData = response.data.animalType
        }
        else {
          errMessage(response.statusText)
        }
      }).catch(error => {
        errorCollback(error)
      })
    },

总结

到此这篇关于vue中get方法\post方法如何传递数组参数的文章就介绍到这了,更多相关vue传递数组参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue实现商品列表的添加删除实例讲解

    vue实现商品列表的添加删除实例讲解

    在本篇内容里小编给大家分享的是关于vue实现商品列表的添加删除实例讲解,有兴趣的朋友们可以参考下。
    2020-05-05
  • Vue自动化注册全局组件脚本分享

    Vue自动化注册全局组件脚本分享

    这篇文章主要介绍了Vue自动化注册全局组件脚本,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • vue计算属性和监听器实例解析

    vue计算属性和监听器实例解析

    本文通过基本实例给大家介绍了vue计算属性和监听器的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • vue使用echarts实现折线图

    vue使用echarts实现折线图

    这篇文章主要为大家详细介绍了vue使用echarts实现折线图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue+elementUI组件tree如何实现单选加条件禁用

    vue+elementUI组件tree如何实现单选加条件禁用

    这篇文章主要介绍了vue+elementUI组件tree如何实现单选加条件禁用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue flex 布局实现div均分自动换行的示例代码

    vue flex 布局实现div均分自动换行的示例代码

    这篇文章主要介绍了vue flex 布局实现div均分自动换行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • el-input无法输入的问题和表单验证失败问题解决

    el-input无法输入的问题和表单验证失败问题解决

    在做项目的时候发现一个情况,输入框无法输入值并且表单校验失灵,所以下面这篇文章主要给大家介绍了关于el-input无法输入的问题和表单验证失败问题解决的相关资料,需要的朋友可以参考下
    2023-02-02
  • vue中pc移动滚动穿透问题及解决

    vue中pc移动滚动穿透问题及解决

    这篇文章主要介绍了vue中pc移动滚动穿透问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 解决vue-photo-preview 异步图片放大失效的问题

    解决vue-photo-preview 异步图片放大失效的问题

    这篇文章主要介绍了解决vue-photo-preview 异步图片放大失效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Vue实现可复用轮播组件的方法

    Vue实现可复用轮播组件的方法

    这篇文章主要为大家详细介绍了Vue实现可复用轮播组件的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论