【javascript】formDataでboolean値が文字列に変換される問題について

FormDataは画像やその他ファイルなどもまとめて格納して送ることができる便利な

apiなのですが、唯一対応していないのがboolean値です。

例えば、以下のようにしてboolean値を送ろうとします。

 

</pre>
let data = new FormData();
data.append("isBool", true);
<pre>

この状態でdata.getAll(‘isBool’);で取り出すと,”true”のように文字列に修正された値が

返ってきます。

これは、form-dataはbool値をサポートしておらず、そのまま data.append(‘isBool’, true)と

送信するとbool値trueが文字列に変換されてしまい正しく反映されないためです。

例として数字や文字列も一緒に格納してみます。


data.append('name', 1000);
data.append('name', 'yamada');
data.append('name', true);

data.getAll('isBool');

 

結果は以下の通り。

// [“1000”, “yamada”, “true”]

yamada以外文字列でないのでkeyと同じ文字列として変換されます。

formDataは万能ですが扱えない型もあるということを念頭においておく必要があります。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG