Php 多次调用XMLHttpRequest onreadystatechange

Php 多次调用XMLHttpRequest onreadystatechange,php,ajax,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 &&

我正在用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

但当我收到回复时,浏览器会发出各种警报。有人能帮助解决这个问题吗?

是的,它可以正常工作……onreadystatechange可以在一个请求中多次调用。。 对这两种情况都发出警报的条件是,无论何时请求正常,都是200

它提醒:

“它没有被记录”

当它得到readystate=4以及
Ok信号时,它会发出警报:

登录

然后

readyState=4-->请求已完成,响应已准备就绪

status=200-->表示服务器已成功处理请求

因此,第二个警报弹出,因为至少您的请求已成功处理。 有关更多信息:

这是:

各种警报-您能更详细地描述一下吗?它多次显示两条警报消息。基本上,每次我调用php文件来登录用户,或者我让他登录,或者我让他退出。这就像我检查的页面被称为多次,它多次显示这些消息,因为它多次发布帖子。但是我不知道为什么。我不知道。。。。但我仍然有readyState和status的验证,并且应该只发生一次(readyState==4&&status==200),对吗?@TaLhaKhan谢谢,我有一个类似的问题,我不确定,在阅读了你的答案后,我能够理解它。我的问题。单击一个按钮会生成多个请求。

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