AJAX の例

AJAX 实例 - 使用 AJAX 发送请求并处理响应

この記事では、豊富な例を用いて、AJAX を使用してさまざまな種類の要求 (GET、POST) を送信する方法、および JSON、XML、テキストデータを含むサーバー応答を処理する方法を詳細に説明します。

1. AJAX 简介

このセクションでは、AJAX の基礎知識、動作原理、およびその利点について説明します。

1.1 什么是 AJAX

AJAX(Asynchronous JavaScript and XML)は、Webページとサーバー間で非同期的にデータをやり取りするための技術です。従来のWebページでは、ページ全体をリロードする必要がありましたが、AJAX を使用すると、ページの一部のみを更新することができます。

1.2 AJAX 的工作原理

AJAX は、ブラウザに組み込まれている XMLHttpRequest オブジェクトを使用して、Webサーバーと通信します。このオブジェクトを使用することで、JavaScript から HTTP リクエストを送信し、サーバーからデータを取得することができます。AJAX の処理は非同期で行われるため、ページ全体をリロードすることなく、必要なデータのみを取得することができます。

1.3 AJAX 的优势

AJAX を使用すると、以下のような利点があります。

  • ページの読み込み速度が向上する
  • サーバーへの負荷を軽減できる
  • ユーザーエクスペリエンスが向上する

2. 发送 GET 请求

このセクションでは、GET リクエストを送信する方法について、原生 JavaScript と jQuery の例を示しながら説明します。

2.1 原生 JavaScript 发送 GET 请求

原生 JavaScript で GET リクエストを送信するには、XMLHttpRequest オブジェクトを使用します。


<script>
// XMLHttpRequest オブジェクトを作成する
var xhr = new XMLHttpRequest();

// リクエストを送信する URL を指定する
var url = "https://example.com/api/data";

// GET リクエストを開く
xhr.open("GET", url);

// リクエストを送信する
xhr.send();

// レスポンスが返ってきた時の処理
xhr.onload = function() {
  // レスポンスのステータスコードが 200 (OK) の場合
  if (xhr.status === 200) {
    // レスポンスのテキストを表示する
    console.log(xhr.responseText);
  } else {
    // エラー処理
    console.error("リクエストに失敗しました。");
  }
};
</script>

解析服务器响应:处理文本格式的响应数据

上記の例では、xhr.responseText プロパティを使用して、サーバーから返されたテキスト形式のレスポンスデータを取得しています。

2.2 使用 jQuery 发送 GET 请求

jQuery を使用すると、より簡単に GET リクエストを送信することができます。


<script>
// jQuery.ajax() メソッドを使用して GET リクエストを送信する
$.ajax({
  url: "https://example.com/api/data",
  type: "GET",
  success: function(response) {
    // リクエストが成功した場合の処理
    console.log(response);
  },
  error: function(xhr, status, error) {
    // リクエストが失敗した場合の処理
    console.error(error);
  }
});
</script>

设置超时和错误处理

jQuery.ajax() メソッドでは、timeout オプションでリクエストのタイムアウト時間を設定したり、error コールバック関数でエラー処理を記述したりすることができます。

3. 发送 POST 请求

このセクションでは、POST リクエストを送信する方法について、原生 JavaScript と jQuery の例を示しながら説明します。

3.1 原生 JavaScript 发送 POST 请求

原生 JavaScript で POST リクエストを送信するには、XMLHttpRequest オブジェクトを使用し、open() メソッドの第1引数に "POST" を指定します。また、リクエストヘッダーに Content-Type を設定する必要があります。


<script>
// XMLHttpRequest オブジェクトを作成する
var xhr = new XMLHttpRequest();

// リクエストを送信する URL を指定する
var url = "https://example.com/api/data";

// POST リクエストを開く
xhr.open("POST", url);

// リクエストヘッダーを設定する
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

// 送信するデータ
var data = "[email protected]";

// リクエストを送信する
xhr.send(data);

// レスポンスが返ってきた時の処理
xhr.onload = function() {
  // レスポンスのステータスコードが 200 (OK) の場合
  if (xhr.status === 200) {
    // レスポンスのテキストを表示する
    console.log(xhr.responseText);
  } else {
    // エラー処理
    console.error("リクエストに失敗しました。");
  }
};
</script>

设置请求头:Content-type

POST リクエストを送信する場合、リクエストヘッダーに Content-Type を設定する必要があります。上記の例では、application/x-www-form-urlencoded を指定しています。これは、HTML フォームのデータを送信する場合と同じ形式です。

3.2 使用 jQuery 发送 POST 请求

jQuery を使用すると、$.post() メソッドで簡単に POST リクエストを送信することができます。


<script>
// $.post() メソッドを使用して POST リクエストを送信する
$.post("https://example.com/api/data", {
  name: "test",
  email: "[email protected]"
})
.done(function(response) {
  // リクエストが成功した場合の処理
  console.log(response);
})
.fail(function(xhr, status, error) {
  // リクエストが失敗した場合の処理
  console.error(error);
});
</script>

传递数据:表单序列化

フォームのデータを送信する場合、serialize() メソッドを使用して、フォームのデータをシリアライズすることができます。


<script>
// フォームのデータを取得する
var formData = $("#myForm").serialize();

// POST リクエストを送信する
$.post("https://example.com/api/data", formData)
// ...
</script>

4. 处理服务器响应

このセクションでは、サーバーから返された JSON、XML、テキストデータの処理方法について説明します。

4.1 处理 JSON 数据

JSON データを処理するには、JSON.parse() メソッドを使用します。


<script>
// ...
xhr.onload = function() {
  if (xhr.status === 200) {
    // JSON データをパースする
    var jsonData = JSON.parse(xhr.responseText);

    // JSON データを表示する
    console.log(jsonData);
  } else {
    // ...
  }
};
</script>

使用 JSON.parse() 方法

JSON.parse() メソッドは、JSON 文字列を JavaScript のオブジェクトに変換します。

4.2 处理 XML 数据

XML データを処理するには、responseXML プロパティを使用します。


<script>
// ...
xhr.onload = function() {
  if (xhr.status === 200) {
    // XML データを取得する
    var xmlData = xhr.responseXML;

    // XML データを表示する
    console.log(xmlData);
  } else {
    // ...
  }
};
</script>

使用 responseXML 属性

responseXML プロパティは、サーバーから返された XML データを DOM オブジェクトとして取得します。

4.3 处理文本数据

テキストデータは、responseText プロパティを使用して取得できます。


<script>
// ...
xhr.onload = function() {
  if (xhr.status === 200) {
    // テキストデータを取得する
    var textData = xhr.responseText;

    // テキストデータを表示する
    console.log(textData);
  } else {
    // ...
  }
};
</script>

5. AJAX 应用场景

AJAX は、以下のような場面でよく使用されます。

  • フォーム検証
  • リアルタイムデータ更新
  • 動的コンテンツ読み込み

6. 总结

この記事では、AJAX の基本から応用までを解説しました。AJAX は、Web アプリケーション開発において非常に重要な技術です。ぜひ、この記事を参考にして、AJAX を習得してください。

参考文献

Q&A

Q1: AJAX とは?

A1: AJAX (Asynchronous JavaScript and XML) とは、JavaScript を使用してサーバーと非同期通信を行い、Web ページの一部のみを更新する技術です。これにより、ページ全体をリロードすることなく、動的なコンテンツを実現できます。

Q2: AJAX を使用するメリットは?

A2: AJAX を使用すると、ページ遷移を減らすことでユーザーエクスペリエンスを向上させ、サーバーへの負荷を軽減できます。また、リアルタイムなデータ更新や動的なコンテンツ読み込みなど、インタラクティブな Web アプリケーションを実現できます。

Q3: AJAX で使用される HTTP メソッドは?

A3: AJAX では、GET、POST、PUT、DELETE などの HTTP メソッドを使用できます。GET はデータの取得、POST はデータの送信によく使用されます。PUT はデータの更新、DELETE はデータの削除に使用されます。