LoginSignup
0
2

More than 1 year has passed since last update.

web学習日記#1 Ajax通信

Last updated at Posted at 2021-05-21

スクリーンショット-2019-08-15-16.12.38-300x198.jpg

JavaScriptでAjax通信 

学習講座
udemy 「[HTML/CSS/JavaScript] フロントエンドエンジニアになりたい人の Webプログラミング入門」


本日はJavascriptでAjax通信を用いたコーディングを行った。

今まで画像を表示させたいときはディレクトリ内の画像ファイルをhtmlまたはcssから直接パスを指定して参照していた。

今回はJavaScriptからXMLHtmlRequestというサーバーと通信するためのAPIを使って、サーバーからjsonといわれる形式のデータを受け取ることで、データ内にある画像へのパスやテキストを使ってweb上に画像やテキストを表示させた。

コード

<script>
    var ajax = new XMLHttpRequest(); //オブジェクトの作成
    ajax.open('GET', 'https://h2o-space.com/htmlbook/images.php'); //送信時のメソッド、送信先のURLの設定
    ajax.responseType = 'json'; //jsonタイプを受け取る
    ajax.send(null); //サーバーへリクエスト

    ajax.onreadystatechange = function() { //読み込み中の状態が変わるごとに処理する
        if(ajax.readyState === XMLHttpRequest.DONE && ajax.status === 200) { 読み込み完了&&ステータスが200
            for(var i = 0; i < this.response.length; i++) {
                var data = this.response[i];

                var img = document.createElement('img');
                img.setAttribute('src', data.path);

                var caption = document.createElement('div');
                caption.className = 'inner';
                caption,innerHTML = '<p>' + data.caption + '<span>' + data.name + '</span></p>';

                var div = document.createElement('div');
                div.className = 'photo';
                div.appendChild(img);
                div.appendChild(caption);

                document.getElementById('img_unit').appendChild(div);
            }
        }
    };
</script>
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2