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