jQuery: Ajax コール成功後にデータはどうやって取得すればいい?
jQuery: Ajax コール成功後にデータを返す
概要
コード例
// Ajax コールを実行
$.ajax({
url: "/api/data",
method: "GET",
success: function(data) {
// 成功時の処理
console.log(data); // サーバーから返ってきたデータを出力
},
error: function(jqXHR, textStatus, errorThrown) {
// エラー時の処理
console.log(jqXHR.status, textStatus, errorThrown);
}
});
解説
$.ajax()
メソッドを使用して Ajax コールを実行します。url
オプションで、データを取得するサーバーの URL を指定します。method
オプションで、リクエストの HTTP メソッドを指定します。ここではGET
メソッドを使用しています。success
オプションで、Ajax コールが成功した際に実行されるコールバック関数を指定します。success
コールバック関数内で、サーバーから返ってきたデータを受け取ることができます。
データの処理
例えば、以下のように処理できます。
- データをコンソールに出力する
- データを HTML に挿入する
- データを JavaScript オブジェクトに変換して処理する
- サーバーから返ってくるデータ形式は、JSON や XML などが一般的です。
- データ形式に合わせて、処理方法を調整する必要があります。
- jQuery Ajax: URL jQuery Ajax
- JavaScript での Ajax: URL JavaScript Ajax
- JSON: URL JSON
- XML: URL XML
補足
- 上記のコード例は、基本的な例です。必要に応じて、オプションやコールバック関数を追加して、処理を拡張することができます。
- Ajax コールは非同期処理なので、処理のタイミングに注意する必要があります。
- エラー処理をしっかり実装しておくことも重要です。
応用例
- ユーザー情報の取得
- 商品リストの表示
- コメントの投稿
注意事項
- Ajax コールを使用する場合は、セキュリティ対策に注意する必要があります。
jQuery を使用して Ajax コールを行い、成功時にサーバーから返ってきたデータを処理する方法について解説しました。
<div id="data-container"></div>
JavaScript
$(function() {
// Ajax コールを実行
$.ajax({
url: "/api/data",
method: "GET",
success: function(data) {
// 成功時の処理
// サーバーから返ってきたデータを HTML に挿入
$("#data-container").html(data);
},
error: function(jqXHR, textStatus, errorThrown) {
// エラー時の処理
console.log(jqXHR.status, textStatus, errorThrown);
}
});
});
解説
- 上記のコード例は、
#data-container
という ID を持つ要素に、サーバーから返ってきたデータを HTML として挿入する例です。 - サーバーから返ってくるデータ形式は、HTML である必要があります。
実行方法
- 上記のコードを HTML ファイルと JavaScript ファイルに保存します。
- HTML ファイルをブラウザで開きます。
結果
- サーバーから返ってきたデータが
#data-container
要素に挿入されます。
jQuery: Ajax コール成功後にデータを返す 他の方法
Deferred オブジェクトを使用する
コード例
// Deferred オブジェクトを作成
var deferred = $.ajax({
url: "/api/data",
method: "GET"
});
// Deferred オブジェクトの `done()` メソッドで、成功時の処理を指定
deferred.done(function(data) {
// 成功時の処理
console.log(data); // サーバーから返ってきたデータを出力
});
// Deferred オブジェクトの `fail()` メソッドで、エラー時の処理を指定
deferred.fail(function(jqXHR, textStatus, errorThrown) {
// エラー時の処理
console.log(jqXHR.status, textStatus, errorThrown);
});
- Deferred オブジェクトの
done()
メソッドで、Ajax コールが成功した際に実行される処理を指定します。
Promise オブジェクトを使用する
jQuery 3.0 以降では、Promise オブジェクトを使用して、Ajax コールの完了を待機し、結果を取得することができます。
// Promise オブジェクトを作成
var promise = $.ajax({
url: "/api/data",
method: "GET"
});
// Promise オブジェクトの `then()` メソッドで、成功時の処理を指定
promise.then(function(data) {
// 成功時の処理
console.log(data); // サーバーから返ってきたデータを出力
});
// Promise オブジェクトの `catch()` メソッドで、エラー時の処理を指定
promise.catch(function(jqXHR, textStatus, errorThrown) {
// エラー時の処理
console.log(jqXHR.status, textStatus, errorThrown);
});
async/await を使用する
JavaScript の async/await
を使用して、Ajax コールの完了を待機し、結果を取得することができます。
async function getData() {
// Ajax コールを実行
const response = await $.ajax({
url: "/api/data",
method: "GET"
});
// 成功時の処理
console.log(response.data); // サーバーから返ってきたデータを出力
}
// getData() 関数を呼び出す
getData();
async
キーワードを付けた関数を作成します。- 関数内で
await
キーワードを使用して、$.ajax()
メソッドの完了を待機します。 await
の後ろに$.ajax()
メソッドを記述します。$.ajax()
メソッドの成功時のレスポンスオブジェクトから、data
プロパティを使用して、サーバーから返ってきたデータを取得することができます。
- Deferred オブジェクトは、jQuery 1.5 以降で使用できます。
- async/await は、JavaScript の ES2017 以降で使用できます。
- jQuery Deferred: URL jQuery Deferred
- JavaScript async/await: URL JavaScript async/await
javascript jquery ajax