JavaScript POST
-
JavaScript で
XHR(XML HTTP Request)を使用してフォームなしでPOSTデータを送信する -
JavaScript で
FetchAPI を使用してフォームなしでPOSTデータを送信する -
JavaScript で
Navigator.sendBeacon()を使用してフォームなしでPOSTデータを送信する
このチュートリアルでは、JavaScript のフォームを使用せずに記事データを送信する方法を説明します。
JavaScript で XHR(XML HTTP Request) を使用してフォームなしで POST データを送信する
XHR は、JavaScript で HTTP リクエストを行うために使用されるオブジェクトです。サーバーと対話し、クライアントとサーバー間でデータを交換するのに役立ちます。ページ全体を更新しなくても、サーバーからデータをプルできます。これにより、ユーザーはページの一部のみを中断して作業を続けることができます。このメソッドを使用すると、フォームを使用せずに POST データを送信できます。
const URL = 'delftstack.com'
var xhr = new XMLHttpRequest();
xhr.open('POST', URL, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({name: 'DelftStack'}));
JavaScript で Fetch API を使用してフォームなしで POST データを送信する
XHR のような JavaScriptFetch API は、HTTP リクエストをサーバーに送信するのに役立ちます。しかし、XHR は約束を利用せず、雑然とした汚れたコードにつながりました。Fetch API を使用するには、fetch() メソッドを呼び出す必要があります。次のパラメータを受け入れます。
URL:データをリクエストする API の URL。object:これは、行われた要求のタイプに関する追加のプロパティを指定するオブジェクトです。3プロパティがあります:method:GET、POSTなどのメソッドを指定します。この場合、POSTリクエストを行っているため、その値はPOSTである必要があります。body:bodyオブジェクトには、送信するデータが含まれています。headers:これは、HTTP要求および応答ヘッダーに対してさまざまなアクションを実行するのに役立つオプションのパラメーターです。
fetch() メソッドの後に、promise メソッド then() と catch() を指定します。fetch() によって返される promise が resolved の場合、then() で指定された関数が実行されます。それ以外の場合、promise は rejected され、catch() 内の関数が呼び出されます。
let data = {name: 'DelftStack'};
fetch('https://randomuser.me/api/?results=10', {
method: 'POST',
body: JSON.stringify(data)
}).then(res => {
console.log('Promise resolved', res);
});
JavaScript で Navigator.sendBeacon() を使用してフォームなしで POST データを送信する
Navigator.sendBeacon() メソッドは、HTTP リクエストを介して非同期で Web サーバーにデータを送信するのに役立ちます。その主な用途は、ウェブサイト分析データをサーバーに送信することですが、POST データを送信するためにも使用できます。
let data = {name: 'DelftStack'};
navigator.sendBeacon('https://randomuser.me/api/?results=10', data);
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn