21

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

但是当我得到响应时,浏览器会启动各种警报。谁能帮助解决这个问题?

4

1 回答 1

42

是的,它应该正常工作....... onreadystatechange可能在一个请求中被调用多次.. 并且为了提醒这两个条件是,只要请求正常,就是200

它提醒:

'它没有记录'

当它得到readystate=4Ok signal发出警报时:

登录。

然后

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

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

因此,第二个警报弹出窗口,因为至少您的请求已成功处理。欲了解更多信息: https

://www.w3schools.com/js/js_ajax_http_response.asp 这里是:


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

于 2013-01-13T18:04:25.510 回答