【qs】前端 get query 請求中相同參數名解決方法

需求展示

GET 傳參要求

customer-user/select-representatives/actionId?profileIds=xxx?profileIds=xxx?profileIds=xxx 

如果選擇拼接字符串,瀏覽器只會解析到到第一個參數,後面因爲同名無法解析。

網上查到的方法都是說,把一樣的參數名變成一個數組像下面這樣:

let profileIds = ['xxxx','xxxx']

但是解析後又變成:

profileIds[]=xxx&profileIds[]=xxx

所以還是得想辦法解決啊。。。

解決方法

1.首先我們要安裝 qs,可以百度去了解下這個包,主要是做 url 序列化的轉譯和編譯的。npm安裝的qs模塊

npm insatall qa -s

2.配置axios參數序列化,把中括號等特殊字符序列化

// create an axios instance
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url
  timeout: 100000, // request timeout
  // 配置axios參數序列化,把中括號等特殊字符序列化
  paramsSerializer: (params) => qs.stringify(params, { indices: false }),
})

3.然後將上面參數變成數組後傳入就行

image

參考文章

js axious 前端 請求多個相同參數名傳值
get請求的參數包含中括號[]時,報錯400

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章