【JavaScript】fetchでPOSTデータを送信する
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、JavaScriptのfetchでPOSTデータを送信する方法をご紹介しています。
JavaScriptのfetchでPOSTデータを送信するにはどうすればいいんだろう?
上記の疑問にお答えします。
では、解説していきます。fetchとは
fetchは、非同期にネットワーク上のリソースを取得することができるAPIです。XMLHttpRequestの代替となるもので、よりシンプルに、より詳細に非同期による通信が実現できます。
fetchでPOSTデータを送信する
fetchでPOSTデータを送信するサンプルです。動作確認のためのサンプルとなっています。本番環境でfetchを使用する場合はHeaders等を指定する必要がありますので、その点ご了承ください。
HTML
<form>
<label>
<span>名前:</span>
<input type="text" name="fullname" value="TARO TANAKA">
</label>
<label>
<span>メールアドレス:</span>
<input type="email" name="email" value="test@example.co.jp">
</label>
<button type="button">送信</button>
</form>
JavaScript
const btn = document.querySelector('button');
const form = document.querySelector('form');
btn.addEventListener('click', ()=>{
const formData = new FormData(form);
fetch('fetch.php', {
method: 'POST',
body: formData,
})
.then(response => response.text())
.then(data => {
console.log(data);
});
});
PHP(fetch.php)
<?php
if($_POST){
$fullname = filter_input(INPUT_POST, 'fullname');
$email = filter_input(INPUT_POST, 'email');
echo "名前:{$fullname}\n";
echo "メールアドレス:{$email}";
}
実行結果
名前:TARO TANAKA メールアドレス:test@example.co.jp
最後に
fetchと同様に非同期にリソースを取得することができるモジュールにaxiosがあります。直感的に操作することができる点から非同期通信ではaxiosが採用されるケースが多いですが、fetchはブラウザに標準搭載されているAPIのため、思い立ったときに気軽に試すことができます。少し癖があるAPIですが、今後も開発が進められるAPIだと思いますので、一通りの使用方法に慣れておくと良いかもしれませんね。
以上、JavaScriptのfetchでPOSTデータを送信する方法のご紹介でした!