jQuery を使用せずに Ajax 呼び出しを行う

Habdul Hazeez 2024年2月15日
  1. JavaScript で XMLHttpRequest を使用して Ajax 呼び出しを行う方法
  2. JavaScript で Fetch API を使用して Ajax 呼び出しを行う方法
jQuery を使用せずに Ajax 呼び出しを行う

このチュートリアルでは、外部ライブラリを必要とせずに JavaScript で AJAX 呼び出しを行う方法を説明します。 そこで、次のことを教えます。

  1. XMLHttpRequest で AJAX 呼び出しを行う方法
  2. Fetch API を使用して AJAX 呼び出しを行う方法

JavaScript で XMLHttpRequest を使用して Ajax 呼び出しを行う方法

XMLHttpRequest は、AJAX 呼び出しを可能にする JavaScript のオブジェクトです。 一連のメソッドのおかげでこれが可能になります。

これらの方法には次のものがあります。

  1. XMLHTTPRequest.onreadystatechange()
  2. XMLHTTPRequest.readyState
  3. XMLHTTPRequest.status()
  4. XMLHTTPRequest.open()
  5. XMLHTTPRequest.send()

これらのメソッドを正しく組み合わせると、AJAX 呼び出しを行うことができます。 また、オブジェクト名から、それらが何をするかがわかります。

たとえば、XMLHTTPRequest.send() は、準備ができたら AJAX 呼び出しを送信します。 以下は、AJAX 呼び出しに XMLHttpRequest を使用するための典型的なアルゴリズムです。

  1. 新しい XMLHTTPRequest オブジェクトを作成します

  2. XMLHTTPRequest.onreadystatechange() に関数を付ける

    2.1 この関数は、XMLHTTPRequest.readyStateDONE を返すかどうかをチェックします
    2.2 XMLHTTPRequest.status() を確認し、それに応じて対処する

  3. AJAX 接続を開きます

    3.1 これは、接続が GET リクエストか POST リクエストかを指定する部分です。

  4. AJAX 呼び出しを送信する

一方、達成しようとしているものによっては、アルゴリズムが長くなる場合があります。 ただし、次に詳しく説明する例では、アルゴリズムが目的を果たします。

ユーザーは、例の HTML ボタンをクリックして AJAX 呼び出しを開始できます。 この呼び出しは、<main> 要素の内容を置き換えます。

<head>
	<meta charset="utf-8">
	<title>Plain AJAX Request</title>
	<style>
		body {
			display: grid;
			justify-content: center;
			align-items: center;
			height: 100vh;
		}

		button {
			padding: 1.2em;
			background-color: #1a1a1a;
			color: #ffffff;
			border: none;
			cursor: pointer;
		}
	</style>
</head>
<body>
	<main id="button_container">
		<button type="button"  onclick="load_ajax_button()">CLICK ME</button>
	</main>
	<script>
		function load_ajax_button() {
			const xhttp = new XMLHttpRequest();
			xhttp.onload = function() {
				let button_container = document.getElementById("button_container")
				button_container.innerHTML = this.responseText;
			}
			xhttp.open("GET", "ajax-button.html", true);
			xhttp.send();
		}
	</script>
</body>

出力:

XMLHttpRequest による Ajax リクエスト

JavaScript で Fetch API を使用して Ajax 呼び出しを行う方法

Fetch API は、AJAX 呼び出しを可能にする最新の Web ブラウザーの組み込み機能です。 さらに、Fetch API は XMLHttpRequest の最新バージョンと考えることができます。

たとえば、以下のコードでは、HTML ボタンを押すたびに、Picsum API からランダムな画像を取得します。 一方、プロセスの仕組みは次のとおりです。

  1. HTML ボタンをクリックして、Picsum API への Fetch リクエストを開始します。
  2. Picsum API レスポンスから url プロパティを取得します。 これは、url にランダムな画像のアドレスが含まれているためです。
  3. Picsum API からのアドレスを画像ソースとして使用します。
  4. したがって、HTML ボタンをクリックするたびに、新しいランダムな画像が取得されます。
<head>
	<meta charset="utf-8">
	<title>Fetch API</title>
	<style>
		main {
			text-align: center;
			margin: 0 auto;
			max-width: 800px;
		}

		img {
			max-width: 100%;
			display: inline-block;
		}

		button {
			margin-top: 20px;
		}
	</style>
</head>
<body>
	<main>
		<h2>A Simple Fetch API Example</h2>
		<div class="img-container">
			<img src="" id="random_image" width="300" height="300">
		</div>
		<button>Click Me for a Random Image</button>
	</main>

	<script>
		let button = document.querySelector('button');

		button.addEventListener('click', function () {
			fetch('https://picsum.photos/200/300')
			.then((response) => {
				return response;
			})
			.then((image_source) => {
				random_image.src = image_source['url'];
			});
		}, false);
	</script>
</body>

出力:

Fetch API を使用した Ajax

著者: Habdul Hazeez
Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn

関連記事 - JavaScript Ajax