咱們發送的get
請求通常是這樣的url?id=1&name=2&gender=3&height=5
,也就是屬性都是不一樣的,axios
默認發送的格式也是這樣的。蛋疼的是,有時候後端要求的格式是這樣的url?name=1&name=2&name=3&name=5
,屬性都相同,值不一樣,是否是有點奇葩,這TM是什麼鬼。可是,有時又沒辦法讓後端改,那就只有想辦法搞,沒想到還真的能夠。javascript
axios
能夠經過添加paramsSerializer
將參數序列化實現,下面看下具體代碼怎麼寫。java
// 傳進來的參數是這樣的 let params = { name: [1, 2, 3, 5] } export function get(url, params = {}) { return new Promise((resolve, reject) => { axios .get(url, { params: params, // 用於發送這種格式的請求,url?name=1&name=2&name=3 paramsSerializer: params => { return QS.stringify(params, { indices: false }); } }) .then(res => { resolve(res.data); }) .catch(err => { reject(err.data); }); }); }
其中的{ indices: false }
參數也是必須的!發送的請求效果以下:ios
能夠複製以上代碼運行查看使用效果,也能夠到GitHub: https://github.com/Jackyyans/code123
下載,更多示例將會持續更新,歡迎關注。git