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

ServerSocketを使ってB/Sサーバーをシミュレートし、ブラウザを使って自分のローカルウェブページにアクセスする。

BSサーバをシミュレート Webサーバをシミュレートし、ブラウザを使用して、書いたサーバ側のプログラムにアクセスし、Webページの効果を表示します。 HTTPSは、このプロトコルを使用することはできませんが、アクセスするには、このことは暗号化されているため、最初は、私は、IDEAを使用しているため、デフォルトのUTF-8は、私も変換するために使用するUTF-8ではないと思ったが、それができないことがわかりました...

Oct 4, 2020 · 4 min read