Такое дело, вот написал под себя маленькую функцию для удобства AJAX соединения:
function ajax(params, url, method, box, callback){
this.params=params; this.queryStr=''; this.url=url; this.method=method; this.box=box;
if(callback){this.callback=callback;}
}
ajax.prototype.query=function(){
xmlhttp.open(this.method, this.url, true);
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4){
if(this.box!=null){
if(typeof(this.box)!='string'){this.box.innerHTML=xmlhttp.responseText;}
else {$(this.box).innerHTML=xmlhttp.responseText;}}
if(this.callback && typeof(this.callback)=='function'){alert('true'); this.callback();}}}
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
for(var key in this.params){
if(keys==0){this.queryStr+=key+'='+this.params[key];} else
{this.queryStr+='&'+key+'='+this.params[key];}
keys++;}
xmlhttp.send(this.queryStr);
}
Вызываю так:
var someVar=new ajax({a:5, b:6, c:7}, '/some.php', 'post', null, function(){...});
someVar.query();
И почему то в методе query нет доступа к this.callback, а если проверку typeof запустить то покажет 'undefined', не могу понять почему, ведь к остальным свойствам доступ отличный.
P.S. Сам код правильный, проверял.