説明
サーバー上のデータを読み込むにはGXmlHttp.create()を使い通信オブジェクトを生成します。通信オブジェクトのopen()とsend()を使ってサーバーとの通信を行います。open()の最初のパラメータに送信方法(getまたはpost)を指定します。二番目のパラメータは取得するデータやCGIのURLを指定します。データの送信(要求/リクエスト)はsend()で行いますが、open()でgetメソッドを指定した場合はパラメータにはnullを指定します。CGIへの送信を行う場合にはURLパラメータとしてopen()のURLに指定する必要があります。open()でpostメソッドを指定した場合は送信するデータをsend()のパラメータとして指定します。
通信が行われると状況に応じてreadystatechangeイベントが発生します。readystatechangeイベントが発生すると呼び出される関数(イベントハンドラ)には、通信オブジェクトがパラメータとして渡されます。渡された通信オブジェクトのreadyStateとstatusの値に応じて処理を分けることができます。readyStateの値は以下のようになります。
0 open()が呼ばれていない(uninitialize)
1 open()は呼ばれたがsend()が呼ばれていない(loading)
2 HTTPレスポンスを受け取った(loaded)
3 データの一部を受け取った(interactive)
4 すべてのデータの読み込みが完了した(complete)
statusはサーバーからの応答コード(ステータスコード)で3桁の10進数になります。代表的なステータスコードは以下のようになります。
200 正常
400 不正なリクエスト
403 アクセス権限がない
404 ファイルがない
500 サーバーエラー(CGIでのエラー等)
正しくデータが読み込まれた場合はreadyStateが4、statusが200になります。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAasAJryKxWJnBFVJa487d9hTHGAxTVT7IRADYa-JdYz7xQ8IQZBSthgDZdggYpQHsmm6WYtHstQFfLA" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
httpObj = GXmlHttp.create();
httpObj.open("get", "sample.txt");
httpObj.onreadystatechange = function() {
if (httpObj.readyState == 4) {
document.getElementById("result").innerHTML = httpObj.responseText;
}
}
httpObj.send(null);
//]]>
</script>
</head>
<body>
<div id="result">読み込み中...</div>
</body>
</html>