2021/12/13
Ajaxとは、HTMLページ内(クライアント)から、外部API(サーバサイド)へ非同期通信するための実装形態のことです。
ページ全体を読み直さずに、ページの一部を書き換える仕組みのことです。
Ajaxを実装しているWebアプリで有名なのが GoogleMap ですよね。
JavaScript での実装がメジャーでしたが、昨今では(2014年以降) jQuery で書く方法の方がメジャーになっています。
仕事では主に Laravel での開発を行っているのですが、Ajax 通信をつかって API を呼び出すケースがあったのでこの機会に勉強しました。
今回は Ajax についてのエントリーです。
まずは基本の書式を学んで、そのあと簡単なコードを書いてみようと思います。
基本の書式
Ajax を用いて url を非同期に読み込む書式です。$.ajax() は jqXHR オブジェクトを返します。
このオブジェクトの done()メソッド でコールバック関数を指定することでデータを受け取ることができます。
失敗した場合のコールバック関数は fail()メソッド で指定します。
Ajaxの初期設定 | $.ajaxSetup()
$.ajax()
を呼び出す際のオプションの値をあらかじめ設定します。
Ajaxでよく使用するオプション | $.ajax()
Ajax メソッドで使用するオプションではキーと値のペアで指定します。
type:
主に GET か POST を指定します。受け取るときは GET、送信するときは POST。
url:
読み込み先または送信先の URL を指定します。
例えば URL をたたいて API を呼び出し、結果を JSON で受け取るとき。
datatype:
json や jsonp などのデータ形式を指定します。
datatype がないと自動判断されます。
ただし、指定しておくと何のデータ形式がわかりやすいし間違った形式を自動判断されることがないです。
data:
サーバに送信するフォームデータを指定します。
この書き方の場合、https://api.laraweb/data.json?p1=hoge&p2=fuga になります。
演習
Ajax を使って非同期で「sample2.html」を読み込んでみます。
Sample.html
Ajax 通信を使って sample2.html を読み込む処理を書きます。
これはHTML(=DOM)の読み込みが終わったら function() の中の処理を実行するという意味です。
ちなみに以下の書き方も同じ動作をします。
Sample2.html
読み込み先のファイルを作成します。普通の HTML ファイルです。
リロードなしで読み込みができればOKです。
Ajax ではPHPファイルにもアクセスできます。(※ドメインが同じであることが条件)
これを利用して、URLを叩くと JSON が返ってくる仕組みをつくると非同期処理(リロードせずに)の機能が作れたりします。
以上です。
Udemyを使ったLaravel学習方法


仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。