JavaScriptで非同期的にPOSTリクエストを行う方法


方法1: XMLHttpRequestを使用する方法

async function postData(url, data) {
  try {
    const response = await new Promise((resolve, reject) => {
      const xhr = new XMLHttpRequest();
      xhr.open("POST", url, true);
      xhr.setRequestHeader("Content-Type", "application/json");
      xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
          if (xhr.status === 200) {
            resolve(xhr.responseText);
          } else {
            reject(xhr.statusText);
          }
        }
      };
      xhr.onerror = function () {
        reject("Network error");
      };
      xhr.send(JSON.stringify(data));
    });
    console.log(response);
  } catch (error) {
    console.error(error);
  }
}
// 使用例:
const url = "https://example.com/api";
const data = { name: "John Doe", age: 25 };
postData(url, data);

方法2: fetch APIを使用する方法

async function postData(url, data) {
  try {
    const response = await fetch(url, {
      method: "POST",
      headers: {
        "Content-Type": "application/json"
      },
      body: JSON.stringify(data)
    });
    const result = await response.json();
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}
// 使用例:
const url = "https://example.com/api";
const data = { name: "John Doe", age: 25 };
postData(url, data);

方法3: axiosライブラリを使用する方法

import axios from "axios";
async function postData(url, data) {
  try {
    const response = await axios.post(url, data);
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
}
// 使用例:
const url = "https://example.com/api";
const data = { name: "John Doe", age: 25 };
postData(url, data);

これらの方法は、JavaScriptで非同期的にPOSTリクエストを行うための一般的な手法です。選択肢の一つを選んで、必要に応じてコードを調整してください。また、URLやデータなどの詳細を自分の要件に合わせて変更してください。