3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FormDataって何?ゼロから解説

Last updated at Posted at 2019-12-14

jQueryを使ったAjaxの実装をしていてよく分からなくなってしまったのでまとめます。

##FormDataって何?

FormData オブジェクトは、XMLHttpRequest を使用して送信するためのキーと値のペアのセットを収集可能にします。本来はフォームデータの送信に使用することを想定していましたが、キーのついたデータを伝送するためにフォームとは独立して使用することもできます。
Mozillaのサイトより(FormData オブジェクトの利用)

これだけではよく分からないので、ひとつひとつ読んでいきます。

FormData オブジェクトは、XMLHttpRequest を使用して送信するためのキーと値のペアのセットを収集可能にします。

 XMLHttpRequestとはブラウザ上からHttp通信を行うためのAPIです。 XMLとはマークアップ言語のひとつで、データの受け渡しを分かりやすくするために使われます。で、このXMLの形式を用いて「キーと値のペアのセット」とやらを収集する訳ですね。実際に書いてみるとこんな感じになります。それぞれのキー(左側)に対して値(右側)が存在していることが分かりますね。それぞれのキーの詳細についてはこのサイトが詳しいです(jQueryのAjaxに渡すkey valueについてのサイトですが、FormDataと同様のkey valueについて記述があり、参考になると思います)。

  $.ajax({
  type: 'GET',
  url: '/hoge/fuga',
  data: fd,
  processData: false,
  contentType: false,
  dataType: 'json'
})

 実際に書く時はこれの前にnew FormDataをしてあげましょう。

var fd = new FormData($('.hogefuga_form').get(0))

本来はフォームデータの送信に使用することを想定していましたが、キーのついたデータを伝送するためにフォームとは独立して使用することもできます。

元々HTMLのformタグから取得したデータを送ることを目的に作られたようですね。ただformとは別にちゃんと指定してあげればもちろんform外のデータも送信できます。

3
2
1

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?