参照:http : //www.openjs.com/articles/ajax_xmlhttp_using_post.php
POSTメソッド
リクエストを送信するときにPOSTメソッドが使用されるように、いくつかの変更を加えます...
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
一部のHTTPヘッダーは、POST要求とともに設定する必要があります。これらを次の行に設定します...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
上記の行では、データ送信はフォーム送信の形式であることを基本的に言っています。また、送信するパラメーターの長さも指定します。
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
「準備完了」変更イベントのハンドラーを設定します。これは、GETメソッドに使用したハンドラーと同じです。ここでhttp.responseTextを使用できます-innerHTML(AHAH)、eval it(JSON)などを使用してdivに挿入します。
http.send(params);
最後に、リクエストとともにパラメータを送信します。指定されたURLは、この行が呼び出された後にのみロードされます。GETメソッドでは、パラメーターはNULL値になります。ただし、POSTメソッドでは、送信されるデータはsend関数の引数として送信されます。params変数は、2行目で次のように宣言されています。つまり、lorem=ipsum&name=binny
「lorem」と「name」という2つのパラメーターをそれぞれ「ipsum」と「binny」という値で送信します。