一般社団法人 全国個人事業主支援協会

COLUMN コラム

擦られているネタかもしれませんが、最近axiosで配列をget送信する方法を知りました。

一般的な書き方

画像ですみません。WordPressの権限の都合でカスタマイズが難しく。。

一般的にget送信でパラメータを渡す際の書き方は以下の通りかなと思います。

しかし、こう書くと以下のようなクエリパラメータが生成されます。

nameArr[]=値1&nameArr[]=値2

みたいな感じで生成されていますね。これが原因です。

ちなみに環境はNuxt.jsで、送信先はSpringで作成したAPIです。

私の環境の場合は、この”[]”が原因で、エラーが発生しています。

“`

java.lang.IllegalArgumentException: Invalid character found in the request target [/api/raceDiff?nameArr[]=%E3%82%AD%E3%83%A3%E3%83%A2%E3%83%A1&nameArr[]=%E3%83%9A%E3%83%AA%E3%83%83%E3%83%91%E3%83%BC ]. The valid characters are defined in RFC 7230 and RFC 3986

“`

 

解決方法

以下のように文字列で連結させるようにします。

spreadArrayという名前の関数は、引数の連想配列に配列が入っていた場合に、nameArr=値1&nameArr=値2のような形式にして文字列を返却させる関数です。

開発者ツールで見てみるとこんな感じです。

これでうまく送信できます。

 

うーん。

もっと早く調べていれば良かった。。

POST送信にしてJSON形式にしなくても送れるんだなぁ。。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア