url?id=1&name=2&gender=3&height=5
通常、getリクエストはこのように送信されます。つまり属性が異なり、axiosのデフォルトの送信フォーマットもこのようになっています。url?name=1&name=2&name=3&name=5
しかし、バックエンドのリクエストフォーマットがこのようになっていることがあります。属性は同じですが、値が異なっています。しかし、バックエンドを変更させる方法がない場合もあり、その場合は、取得する方法を考えるしかありませんが、本当にできるとは思いませんでした。
axios は paramsSerializer によるパラメータのシリアライズを追加することで実現できます。
コードの書き方は?
// 入力されるパラメーターは以下のようになる。
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 } パラメータも必要です!送信されたリクエストの効果は次のようになります:
サンプルコードのダウンロード
{ indices: false }
あなたは使用の効果を確認するために実行するには、上記のコードをコピーすることができ、また、ダウンロードに行くことができ、より多くの例が更新され続ける、注意を払うことを歓迎します。