Javascript Ajax readyState始终为1

Javascript Ajax readyState始终为1,javascript,ajax,Javascript,Ajax,我打算做一个看似简单的ajax,但却无法实现。这是我的密码: var xmlHttpRequest; function processRequest(){ alert("process request called with " + xmlHttpRequest); if(xmlHttpRequest.readyState==4){ alert("status = " + xmlHttpRequest.status); if(xmlHttpRequest.status == 200

我打算做一个看似简单的ajax,但却无法实现。这是我的密码:

var xmlHttpRequest;

function processRequest(){
 alert("process request called with " + xmlHttpRequest);
 if(xmlHttpRequest.readyState==4){
  alert("status = " + xmlHttpRequest.status);
  if(xmlHttpRequest.status == 200){    
     }
   } else {
    alert("process request no luck readyState = " + xmlHttpRequest.readyState);
   }
 alert("process request exiting");
}


function updateCount(customerID, productID) {

 xmlHttpRequest = init();

  function init(){

 if (window.XMLHttpRequest) {
               return new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } else {
         alert("Your browser does not support AJAX!");
        }
  }


 xmlHttpRequest.open("GET", url, true); 

 xmlHttpRequest.onreadystatechange = processRequest(); 
}
正如我在主题行中所说,readyState始终为1。我做错了什么

谢谢!
Eddy

添加
xmlHttpRequest.send()
after
xmlHttpRequest.onreadystatechange=processRequest
添加
xmlHttpRequest.send()
after
xmlHttpRequest.onreadystatechange=processRequest

在启动请求之前,您正在调用processRequest

xmlHttpRequest.onreadystatechange = processRequest();
这是错误的,必须这样做

xmlHttpRequest.onreadystatechange = processRequest;
这将存储对方法的引用,而不是直接调用它


一旦就绪状态发生更改,
xmlHttpRequest
对象将尝试调用此引用。

在启动请求之前,您正在调用processRequest

xmlHttpRequest.onreadystatechange = processRequest();
这是错误的,必须这样做

xmlHttpRequest.onreadystatechange = processRequest;
这将存储对方法的引用,而不是直接调用它


一旦就绪状态发生更改,
xmlHttpRequest
对象将尝试调用此引用。

非常感谢您提供的Ghnomy和digitalFresh!它工作得很好。我一直在努力找出这个API在哪里执行阻塞/等待。我猜javascript的工作方式很神秘:)非常感谢Ghnomy和digitalFresh!它工作得很好。我一直在努力找出这个API在哪里执行阻塞/等待。我猜javascript的工作方式很神秘:)