axiosリレー配列の方法

4559 ワード

最近Vueを使用して、伝達配列を要求する問題を発見しました.axios中国語網で3つの解決方法を見つけました.以下に本人が実践した二つの方法を挙げます.一つ目はURLSearch Paraams APIを使って、Qsライブラリを使ってデータを符号化します.
URLSearch Paraams APIを使用する:
let params = new URLSearchParams()
params.append('userId', user.id)
params.append('roleIds', roleIds)
this.$axios.put('/users/user_role', params)
要求パラメータが変わります.
userId=2&roleIds=2%2C1%2C3
楽屋は直接Long[]roleIdsでパラメータを受け取ります.
Qsライブラリを使ってデータを符号化する
qsはnpm倉庫で管理されているカバンです.npm install qsコマンドでインストールできます.しかし、axiosはqsを持っています.これは便利です.Vueモジュールに直接にQsを導入します.
import qs from 'qs'
this.$axios.put('/users/user_role',
      qs.stringify({
       	userId: user.id,
        roleIds: roleIds
      }, {indices: false})
    )
qs.streingifyは対象をURLに順番に並べてつなぎ合わせます.このように要求パラメータが変わりました.
userId=2&roleIds=2&roleIds=1&roleIds=3
このうちindicesはデフォルトでtrueとなり、スティッチング時に明示的なインデックスが与えられます.デフォルトでは下記のようになります.
userId=2&roleIds[0]=2&roleIds[1]=1&roleIds[2]=3
indicesをfalseに設定すれば、バックグラウンドは直接Long[roleIds]でパラメータを受け入れることができます.