2007年08月29日

prototype.jsによるAjaxメモ

prototype.jsをインクルードして、以下のようなラッパー関数を定義します。IEの場合、requestHeadersを以下のように設定しないとキャッシュが働いてしまい、サーバまでリクエストが届かなくなってしまいます。

function AjaxWrapper( url, params, callback ) {
var ajax = new Ajax.Request(url,
{
onSuccess : callback,
onFailure : reportServerError,
onException : reportException,
parameters : params,
method : 'post',
asynchronous: true,
requestHeaders:['If-Modified-Since', 'Thu, 01 Jun 1970 00:00:00 GMT']
}
);
}

// Callback Function For Ajax
function receiveResponse(res) {
$('対象オブジェクト名').innerHTML = res.responseText;
}

function reportServerError(res, json) {
alert("Sorry, Server Error.[" + res.statusText + "]");
}

function reportException(request, e) {
alert("Sorry, Exception.[" + e.message + "]");
}
そして、
例えば、こんな感じに呼び出します。

AjaxWrapper("http://xxx.xxx/xxx.php", "param1=aaa&param2=bbb", receiveResponse);

HTMLの対象オブジェクトにAjaxしたレスポンスデータが入力されます。

posted by 台北猫々 at 21:28| Comment(0) | TrackBack(0) | 技術メモ