axios传递数组参数总结

想要传这样的内容:

axios.post(url,{
  ids: [1,2,3],
  type: 1
}).then((res) => {})

引用

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

get / delete请求方式解决方式如下

axios.get(url, {
  params: {
    ids: [1,2,3],
    type: 1
  },
  paramsSerializer: params => {
    return qs.stringify(params, { indices: false })
  }
})
axios.delete(url, {
  params: {
    ids: [1,2,3],
    type: 1
  },
  paramsSerializer: params => {
    return qs.stringify(params, { indices: false })
  }
})

post / put 请求方式解决方式如下

axios.post(url, qs.stringify(
  params: {
    ids: [1,2,3],
    type: 1
  }, { indices: false })
)
axios.put(url, qs.stringify(
  params: {
    ids: [1,2,3],
    type: 1
  }, { indices: false })
)

其余类似。这样一来,数组参数就会转换为如下的形式
url?ids=1&ids=2&id=3

后台接口接收

(1)数组类型(int[])接收结果
[1,2,3]
(2)字符串形式(String)接收结果
1,2,3
这只是一种形式,大概有4种形式:

qs.stringify({ids: [1, 2, 3]}, { indices: false })
//形式: ids=1&ids=2&id=3
qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘indices‘})
//形式: ids[0]=1&ids[1]=2&ids[2]=3
qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘brackets‘})
//形式:ids[]=1&ids[]=2&ids[]=3
qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘repeat‘})
//形式: ids=1&ids=2&id=3

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

你可能感兴趣的:(axios)