AJAXの要はXMLHttpRequestオブジェクトです。
最新のブラウザはすべてXMLHttpRequestオブジェクトをサポートしています。
XMLHttpRequestオブジェクトは、背後でサーバとデータ交換するために使用します。これは、ページ全体をリロードすることなく、 Webページの一部を更新することができることを意味しています。
最新のブラウザ(Chrome、IE7+、Firefox、Safari、Opera)には、すべてXMLHttpRequestオブジェクトが組み込まれています。
XMLHttpRequestオブジェクトを作成するための構文:
variable = new XMLHttpRequest();
古いバージョンのInternet Explorer(IE5とIE6)はActiveXオブジェクトを使用します:
variable = new ActiveXObject("Microsoft.XMLHTTP");
IE5とIE6を含むすべてのブラウザで処理するには、ブラウザがXMLHttpRequestオブジェクトをサポートしているかどうかを確認します。 サポートしている場合はXMLHttpRequestオブジェクトを作成し、そうでない場合はActiveXObjectを作成します:
var xhttp;
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
}
else {
// code for IE6, IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
Try it Yourself »
セキュリティ上の理由から、最新のブラウザではドメイン間のアクセスを許可していません。
つまり、ロードしようとしているWebページとXMLファイルは、同じサーバ上に配置していなければなりません。
W3Schoolsの例では、すべてW3SchoolsドメインにあるXMLファイルを開きます。
上の例を自分のWebページの1つで使いたい場合は、ロードするXMLファイルを自分のサーバに配置しなければなりません。
古いバージョンのInternet Explorer(IE5とIE6)はXMLHttpRequestオブジェクトをサポートしていません。
IE5とIE6で処理するには、ブラウザがXMLHttpRequestオブジェクトをサポートしているかどうかを確認するか、ActiveXObjectを作成します:
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
Try it Yourself »
メソッド | 説明 |
---|---|
new XMLHttpRequest() | 新しいXMLHttpRequestオブジェクトを作成します |
abort() | 現在のリクエストをキャンセルします |
getAllResponseHeaders() | ヘッダ情報を返します |
getResponseHeader() | 指定のヘッダ情報を返します |
open(method, url, async, user, psw) | リクエストをを指定します method: リクエスト・タイプ GET か POST url: ファイルの場所 async: true(非同期)またはfalse(同期) user: オプション ユーザー名 psw: オプション パスワード |
send() | リクエストをサーバに送信します GET リクエストに使用 |
send(string) | リクエストをサーバに送信します POST リクエストに使用 |
setRequestHeader() | 送信するヘッダーにラベルと値のペアを追加します |
プロパティ | 説明 |
---|---|
onreadystatechange | readyStateプロパティが変更されたときに呼び出す関数を定義します |
readyState | XMLHttpRequestのステータスには次のものがあります。 0: リクエストが初期化されていません 1: サーバー接続が確立されました 2: リクエストを受け取りました 3: リクエストを処理中です 4: リクエストが完了し、レスポンスが準備完了です |
responseText | レスポンスデータを文字列として返します |
responseXML | レスポンスデータをXMLデータとして返します |
status | リクエストのステータス番号を返します 200: "OK" 403: "Forbidden" 404: "Not Found" 完全なリストについては、Http メッセージ・リファレンスをご覧ください |
statusText | ステータ・ステキスト("OK" や "Not Found"など)を返します |