javascript - Ajax 就绪状态始终为 1

标签 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){    
     }
   } 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。我做错了什么?

谢谢! 涡流

最佳答案

您在开始请求之前正在调用 processRequest。

xmlHttpRequest.onreadystatechange = processRequest();

这是错误的,而且必须是

xmlHttpRequest.onreadystatechange = processRequest;

这将存储对您的方法的引用,而不是直接调用它。

一旦就绪状态发生变化,xmlHttpRequest 对象就会尝试调用此引用。

关于javascript - Ajax 就绪状态始终为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3094997/

相关文章:

javascript - 使用express.js混淆动态url

javascript array.slice().push() 未按预期工作

javascript - Json 数组的输出值

php - 在 jquery/ajax 中使用错误函数

javascript - 网页上基于 3DSMax .obj/.max 的模型显示与 AJAX 可点击功能集成

javascript - 单击以使用 Jquery 和 ajax 显示详细信息

c# - GridView 文本框值插入另一个文本框中

填充某些属性的javascript异步调用

php - 如果用户不存在,则不显示 jQuery 和排序

javascript - 需要串起来吗?将对象数组从 javascript 发送到 PHP 的数据格式困惑