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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM