function myAjx(url,par){
 var param=par+"&time="+new Date().getTime();
 createXMLHttpRequest();
 xmlHttpRequest.open("POST",url,true);
 xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 xmlHttpRequest.onreadystatechange = function(){
   if(xmlHttpRequest.readyState == 4){
    if(xmlHttpRequest.status == 200){
 var res = xmlHttpRequest.responseText;
 return res; //这里有个返回,但不是 myAjx()的返回
}else {
 window.alert("请求页面异常");
}
   }
  }
  xmlHttpRequest.send(param);
}如上,如何获取那个res的返回?

解决方案 »

  1.   

    function myAjx(url,par,success){
     success = success || function(){};
     var param=par+"&time="+new Date().getTime();
     createXMLHttpRequest();
     xmlHttpRequest.open("POST",url,true);
     xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     xmlHttpRequest.onreadystatechange = function(){
       if(xmlHttpRequest.readyState == 4){
        if(xmlHttpRequest.status == 200){
         var res = xmlHttpRequest.responseText;
         success.call(null,res);
        }else {
         window.alert("请求页面异常");
        }
       }
      }
      xmlHttpRequest.send(param);
    }
    //下面代码是如何调用
    myAjx("url","par",function(data){
        //data就是请求回来的数据
    })
      

  2.   


    function myAjx(url,par,callback){
     var param=par+"&time="+new Date().getTime();
     createXMLHttpRequest();
     xmlHttpRequest.open("POST",url,true);
     xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     xmlHttpRequest.onreadystatechange = function(){
       if(xmlHttpRequest.readyState == 4){
        if(xmlHttpRequest.status == 200){
         var res = xmlHttpRequest.responseText;
         callback.apply(res);   //这里有个返回,但不是 myAjx()的返回
         xmlHttpRequest = null;
        }else {
         window.alert("请求页面异常");
        }
       }
      }
      xmlHttpRequest.send(param);
    }myAjx("http://.....", par, function(){
         alert(this) //该this就是请求成功后返回的res,在此进一步处理该数据。
    })