LoginSignup
5
3

More than 5 years have passed since last update.

application/x-www-form-urlencoded指定されているフォームにNode.jsでaxiosを使ってPOSTする方法

Posted at

公式ドキュメント

概要

自分が結構詰まったのでメモです。

querystringを使う方法(Nodeのバージョンを問わない)

const querystring = require('querystring');
axios.post('http://something.com/', querystring.stringify({ foo: 'bar' }));

こちらの方法がバージョンを問わず公式ドキュメントでも使われているのでおすすめです。
自作のライブラリでquerystringを使った実装があるので参考にどうぞ。
https://github.com/SugarShootingStar/nomlish/blob/master/src/main.js

URLSearchParams()を使う方法(Nodeのバージョンが10以上)

const params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);

公式ドキュメントには記述されていませんが、nodeのバージョンが10以上の場合、URLSearchParams()がそのまま使えるようになっているのでquerystringをrequireしなくても動かすことができます。
しかし、自作ライブラリ等で複数バージョンに対応したい場合は上記のquerystringを使った方法のほうが無難です。

また、Node8にも一応URLSearchParams()は用意されているのですがこちらを使う場合はこうなります。
しかし私がこの方法を試した所上手く動きませんでした。サイトとの兼ね合いかもしれませんが…

const { URLSearchParams } = require('url');
const params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);
5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3