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