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'}) } })
参照文献: