多次调用XMLHttpRequest onreadystatechange

时间:2013-01-13 17:33:15

标签: php ajax

我正在php中使用ajax请求实现登录系统。

这是我的要求

hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

hr.onreadystatechange = function() {

    var return_data = hr.responseText;
    if(hr.readyState == 4 && hr.status == 200) {
        alert('is logged');
    }else if (hr.status == 400){
        alert('is not logged');
    }
}


hr.send(vars); // Actually execute the request

但当我收到回复时,浏览器会启动各种警报。任何人都可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:30)

是的,因为它应该....... onreadystatechange可以在一个请求中多次调用.. 并且为了警告两个条件,只要请求是好的,它就是200,它会警告“它没有记录”,当它获得readystate = 4以及Ok信号时它会报警。

readyState = 4 //请求已完成且响应已准备就绪
status = 200 //表示服务器成功处理了请求

所以,第二次警报popsup因为至少你的请求被成功地处理了。 欲了解更多信息: http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp

这里是:


     xhrobj.onreadystatechange = function()
    {
      if (xhrobj.readyState == 4 && xhrobj.status == 200)
      {
        if (xhrobj.responseText)
         {
                //put your code here 
           document.write(xhrobj.responseText);
          }
       }
     };