Vue で配列パラメータを渡すための get / delete メソッド

Vue で配列パラメータを渡すための get / delete メソッド

フロントエンドとバックエンドがやり取りする場合、get または delete を介してバックエンドに配列を渡す必要がある場合があります。ただし、配列パラメータは送信プロセス中に変換されるため、バックエンドはデータを直接受信できません。結果は次のようになります。

パラメータ: { name : [ 1, 2, 3 ] }
翻訳効果: http://aaa.com?name[]=1&name[]=2&name[]=3
対象効果: http://aaa.com?name=1&name=2&name=3

解決:

qsプラグインを使用して配列パラメータをシリアル化する

1. qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
// 出力: 'a[0]=b&a[1]=c'
2. qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 出力: 'a[]=b&a[]=c'
3. qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
// 出力: 'a=b&a=c'
4. qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'カンマ' })
// 出力: 'a=b,c'

インストール

npm インストール qs

使用

//axiosリクエストインターセプターで、'qs'からqsをインポートします
axios.interceptors.request.use(リクエスト => {
 if (request.method === 'delete' || request.method === 'get') {
 request.paramsSerializer = function(params) {
  qs.stringify(params, { arrayFormat: 'repeat' }) を返します
 }
 }
 返品リクエスト
},(エラー) =>{
 Promise.reject(error) を返します。
})

ナレッジポイント拡張: Vue でパラメータを渡す Get、Delete、Post、Put

Vue2.5以降に触れたばかりで、パラメータの渡し方がわからない初心者プログラマー向けの参考資料です。

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
  <メタ文字セット="UTF-8">
  <title>ドキュメント</title>
</head>

<本文>
/*フロントエンドとバックエンドのやり取りを改善するために、js ファイル axios.js を導入します*/
  <script type="text/javascript" src="js/axios.js"></script>
  <script type="text/javascript">
    // axios リクエスト パラメータの受け渡し // axios get リクエスト パラメータの受け渡し // 従来の形式の get リクエスト axios.get('http://localhost:3000/axios?id=123')
      .then(関数(ret){
      コンソールログ(ret.data)
     })
     // RESTful GET リクエスト axios.get('http://localhost:3000/axios/123')
      .then(関数(ret){
      コンソールログ(ret.data)
     })
     // パラメータ付きリクエストを取得 axios.get('http://localhost:3000/axios', {
      パラメータ: {
        id: 789
      }
    }).then(関数(ret) {
      コンソールログ(ret.data)
    })

    // // axios 削除リクエストパラメータ axios.delete('http://localhost:3000/axios', {
      パラメータ: {
        id: 111
      }
    }).then(関数(ret) {
      コンソールログ(ret.data)
    })

    //-----------------------------------

    // axios を使用して POST リクエストを作成し、デフォルトで json データを渡します axios.post('http://localhost:3000/axios', {
        'uname': 'lisi',
        'パスワード': 123
      }).then(関数(ret) {
        コンソールログ(ret.data)
      })
      // axios を使用して POST リクエストを作成し、フォーム データを渡します var params = new URLSearchParams();
       パラメータを追加します('uname', 'zhangsan');
       パラメータを追加します('pwd', '111');
       axios.post('http://localhost:3000/axios', パラメータ)
        .then(関数(ret) {
         コンソールログ(ret.data)
        })

    // axios はリクエストパラメータを put します axios.put('http://localhost:3000/axios/123', {
      uname: 'lisi',
      パスワード: 123
    }).then(関数(ret) {
      コンソールログ(ret.data)
    })



    // axios の場合、get および delete リクエストでは、パラメータは params 属性に配置されます // post および put リクエストでは、パラメータはオブジェクトに直接配置されます</script>
</本文>

</html>

バックエンドへのリクエストを開始するコード(一部の企業ではサーバーサイドプログラマーがこれを書くのを許可していません)フロントエンドプログラマーは試験のみ

app.get('/adata', (req, res) => {
  res.send('こんにちは axios!')
})
app.get('/axios', (req, res) => {
  res.send('axios get pass パラメータ' + req.query.id)
})
app.get('/axios/:id', (req, res) => {
  res.send('axios get (Restful) パラメータを渡す' + req.params.id)
})
app.delete('/axios', (req, res) => {
  res.send('axios get pass パラメータ' + req.query.id)
})
app.delete('/axios/:id', (req, res) => {
  res.send('axios get (Restful) パラメータを渡す' + req.params.id)
})
app.post('/axios', (req, res) => {
  res.send('axios post pass パラメータ' + req.body.uname + '---' + req.body.pwd)
})
app.put('/axios/:id', (req, res) => {
  res.send('axios put pass パラメータ' + req.params.id + '---' + req.body.uname + '---' + req.body.pwd)
})

これで、vue で配列パラメータを渡す get/delete メソッドに関するこの記事は終了です。vue で配列パラメータを渡す方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue の get リクエストで配列パラメータを渡す方法の例
  • Vue axios データリクエストの get、post メソッドと例の詳細な説明
  • VueはURLパラメータを取得し、取得パラメータの配列を返します。
  • Vue の get メソッド\post メソッドで配列パラメータを渡す方法

<<:  Workbench を介して MySQL データベースにリモートでアクセスする方法の詳細な説明

>>:  Linux カーネル デバイス ドライバーのメモリ管理に関する注意事項

推薦する

MySQL に IP アドレスを効果的に保存する方法と、文字列 IP と数値を変換する方法の詳細な説明

High Performance MySQL バージョン 3 (セクション 4.1.7) を見ると、...

ウェブページの最も基本的なコード

◆お気に入りに追加例示するクリックすると、ブラウザのお気に入りメニューにウェブサイトが追加されます...

webpackコード断片化の実装

目次背景コモンズチャンクプラグイン分割チャンク構成リソースを非同期に読み込む要約する背景高性能なアプ...

ウェブページ(ウェブサイト)のデザインと制作に関する考えや経験の共有

まずは投稿する前に! 「I Want to Study on My Own!」に改めて感謝します。た...

SHTML 簡潔なチュートリアル

SHTMLとASPは似ています。SHTMLという名前のファイルでは、SSIの命令がASPの命令と同じ...

Chrome デベロッパー ツールの詳細な紹介 - タイムライン

1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...

ネイティブjsは9マスグリッドのドラッグアンドドロップを実現します

ネイティブJSを使用して9つの正方形のグリッドを記述し、9つのグリッドの位置をドラッグして変更する効...

「@INC で ExtUtils/MakeMaker.pm が見つかりません」というエラーを解決する

mha4mysql をインストールする場合の手順は、おおよそ次のようになります: unzip、per...

ズームインとズームアウトの閉じるボタンを実現する CSS (サンプル コード)

この効果はブラウザ ページで最もよく見られます。まずは効果の画像をご覧ください。 上の図に示すように...

統計量に対するmySql SQLクエリ操作

余計なことは言わないで、コードだけ見てみましょう〜 プロジェクト番号を選択、 sum(case wh...

Webデザインチュートリアル(2):模倣と盗作について

<br />前回の記事では、Webデザインの手順と方法を紹介しました。詳細については、前...

MySQL 最適化: キャッシュ最適化 (続き)

MySQL 内部には至るところにキャッシュがあります。MySQL のソースコードを読むと、キャッシ...

Vue 3 での watch と watchEffect の新しい使い方

目次1. 時計の新しい使い方1.1. ウォッチの使用構文1.2. 複数の属性値を監視する1.3. 参...

HTML で入力ボックスに純粋な数字のみを入力するように制限する方法

inputボックスを純粋な数字のみに制限する1、onkeyup = "value=valu...

ウェブフロントエンド開発者が知っておくべき 9 つの実用的な CSS プロパティ

1. 角を丸くする今日の Web デザインは、常に最新の開発テクノロジーに追随しており、HTML5 ...