HTMLでAjaxを使用する方法

HTMLでAjaxを使用する方法

このページでは、HTMLでAjaxを使用する方法について詳しく解説します。

目次

Ajaxとは?

Ajax(Asynchronous JavaScript and XML)は、非同期通信を利用してサーバーとデータのやり取りを行う技術です。ページを再読み込みせずにデータを取得・更新できるため、動的なWebアプリケーションを構築する際に便利です。

XMLHttpRequestを使ったAjax

Ajaxの古典的な実装方法として、XMLHttpRequest オブジェクトを使用する方法があります。

基本的なGETリクエスト


    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://jsonplaceholder.typicode.com/posts/1", true);
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
            console.log(JSON.parse(xhr.responseText));
        }
    };
    xhr.send();
    

Fetch APIを使ったAjax

Fetch API は、より簡潔にAjaxリクエストを記述できる新しい方法です。

基本的なGETリクエスト


    fetch("https://jsonplaceholder.typicode.com/posts/1")
        .then(response => response.json())
        .then(data => console.log(data))
        .catch(error => console.error("Error:", error));
    

async/awaitを用いた非同期通信

async / await を使用すると、非同期コードをより直感的に書くことができます。

async/awaitを使ったGETリクエスト


    async function fetchData() {
        try {
            let response = await fetch("https://jsonplaceholder.typicode.com/posts/1");
            let data = await response.json();
            console.log(data);
        } catch (error) {
            console.error("Error:", error);
        }
    }
    fetchData();
    

JSONデータの取得と処理

Ajaxを利用すると、JSONデータを取得し、Webページに表示することができます。

例:JSONを取得してHTMLに表示


    async function fetchAndDisplayData() {
        let response = await fetch("https://jsonplaceholder.typicode.com/users");
        let users = await response.json();
        let userList = document.getElementById("userList");
        users.forEach(user => {
            let li = document.createElement("li");
            li.textContent = user.name;
            userList.appendChild(li);
        });
    }
    

    POSTリクエストの送信

    サーバーにデータを送信する場合、POSTリクエストを利用します。

    Fetch APIを使用したPOSTリクエスト

    
        async function postData() {
            let response = await fetch("https://jsonplaceholder.typicode.com/posts", {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({
                    title: "サンプルタイトル",
                    body: "これはサンプルの本文です",
                    userId: 1
                })
            });
            let result = await response.json();
            console.log(result);
        }
        

    まとめ

    Ajaxを使用すると、ページのリロードなしでサーバーとデータをやり取りできます。XMLHttpRequest よりも Fetch API を使うのが一般的で、async/await を使うことでコードをよりシンプルに書けます。

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です