VUE—axios自定义请求配置—3、transformRequest在向服务器发送前,修改请求数据(图文详情)

VUE—axios自定义请求配置—3、transformRequest在向服务器发送前,修改请求数据(图文详情)

import axios from 'axios'
  import qs from 'qs'

  let http = axios.create({
    baseURL: 'https://www.easy-mock.com/mock/5d41580a1a802c0d5e53dcc2/example/',
    // 可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL

    transformRequest: [function (data) {
      // `transformRequest` 允许在向服务器发送前,修改请求数据
      // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法
      data.sex = 'man'
      return qs.stringify(data)
      // 结合create_headers里的内容,在这里又新增一条信息sex=man
      // 因此network中查看的结果是:name=xiaoming&age=12&sex=man
    }],

    headers: {'content-type': 'application/x-www-form-urlencoded'},
  })
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
// 'a[0]=b&a[1]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 'a[]=b&a[]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
// 'a=b&a=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' })
// 'a=b,c'

axios中get请求的params参数中带数组的处理方法

const qs = require('qs');

axios.get(url, {
    params:{
        arr: [1,2,3]
    },
    paramsSerializer: function(params) {
        return qs.stringify(params, {arrayFormat: 'repeat'})
    }
})

参照文献:

https://www.jianshu.com/p/68d81da4e1ad

https://blog.csdn.net/Poppy_LYT/article/details/98172136

原文地址:https://www.cnblogs.com/yeminglong/p/12737584.html