function initReq(reqType,url,isAsynch){ 
    /*指定将处理HTTP响应的函数*/ 
    request.onreadystatechange=handleResponse;///位置在request.send()之前 request.onreadystatechange也只是检测一次而已,并没有循环检测,直至readystate=4,
  request.open(reqType,url,isAsynch); 
    /*为POST请求设定Content-Type头*/ 
    request.setRequestHeader("Content-Type", 
            "application/x-www-form-urlencode;charset=UTF-8"); 
    request.send(queryString);}////此句是在request.onreadystatechange检测之后执行的,但是在前面还没有异步发送请求,状态应该不为4,怎么会接收到响应文本呢? ==========================
onreadystatechange
回调函数;只要readyState发生了变化,被赋给这个属性的函数后就会被调用。
readystate
数值;0表示未初始化,open()函数还没有被调用;1表示正在载入,send()函数还没有被调用;2表示已载入,send()函数已被调用,并且headers/status已经可用;3表示正在交互,responseText已经含有部分数据;4表示已完成。

解决方案 »

  1.   

    request.onreadystatechange=handleResponse    
    request.send(queryString)
    关注中,对于上面两句的先后顺序也不太明白。试过之后好像都会返回4
      

  2.   

    request.onreadystatechange=handleResponse -->这是为事件设定触发函数 并不是执行函数
    request.send(queryString) -->这是发送请求
    http://topic.csdn.net/u/20081105/10/1d2f29ad-b8ed-460a-a284-c638070efcb3.html
      

  3.   

    request.onreadystatechange=handleResponse的意思是设置当状态改变时触发handleResponse事件send后返回 400或404或500时,即readystate改变时就触发了onreadystatechange事件:handleResponse
    所以 它行定义但后执行,
      

  4.   

    xmlHttp.onreadystatechange=回调函数方法名 
    function(){}这是个匿名函数 onreadystatechange是个触发事件(如同点击时触发onclick事件一样) 
    意思是当回调状态改变的时候触发所定义的函数 跟谁先执行无关