blog

同じ属性で異なる値(url?name=1&name=2&name=3)のaxiosリクエストを送信するには?

一般的に、送信される取得リクエストはこの url?id=1&name=2&gender=3&height=5 のように、属性が異なります。バックエンドが要求するフォーマットが、この url?name=...

Oct 4, 2020 · 1 min. read
シェア

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 }あなたは使用の効果を確認するために実行するには、上記のコードをコピーすることができ、また、ダウンロードに行くことができ、より多くの例が更新され続ける、注意を払うことを歓迎します。

Read next

Vueのレンダリングウォッチャーとユーザーウォッチャー

この記事では、レンダリングウォッチャーとユーザーウォッチャーの2種類のウォッチャーを追加します。\ncomputed属性を理解すれば、残りの2種類のウォッチャーがどのように動作するかを理解するのは簡単です。\nレンダリング/レンダー・ウォッチャー\nレンダリング/レンダー・ウォッチャーは

Oct 3, 2020 · 3 min read