简体   繁体   English

如何返回xmlHttp请求状态?

[英]How To Return xmlHttp request status?

I would like to know how to verify the status of an xmlHttp request after sending it. 我想知道在发送后如何验证xmlHttp请求的状态。 How do I go about doing it? 我该怎么做呢? Thanks. 谢谢。

function sendRequest(){
    //get refresh access token   
    var accessToken = 'xxx';
    //get user_id
    var userid = document.getElementById('userid').value;
    //get request_token
    var requestToken = document.getElementById('requestToken').value;

     //insert database
     var xmlHttp = new XMLHttpRequest();
     var url="database.php";
     var parameters = "accessToken=" + accessToken + "&userid=" + userid + "&requestToken=" + requestToken ;
     xmlHttp.open("POST", url, true);

    //send request
     xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xmlHttp.setRequestHeader("Content-length", parameters.length);
     xmlHttp.setRequestHeader("Connection", "close");
     xmlHttp.send(parameters);

    //check status
    if(xmlHttp.status == Ok){
        alert('success!');
    }else {
        alert('error');
    }

}

I think this is what you're looking for 我认为这就是您要寻找的

var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "http://your-url.com/your-page.php", true);
  xhttp.send();

The onreadystatechange event is triggered every time the readyState changes. 每当readyState更改时,都会触发onreadystatechange事件。

During a server request, the readyState changes from 0 to 4: 在服务器请求期间,readyState从0更改为4:

0: request not initialized 0:请求未初始化
1: server connection established 2: request received 1:建立服务器连接2:收到请求
3: processing request 3:处理要求
4: request finished and response is ready 4:请求已完成且响应已准备就绪

So in your code, you can add the listener to check for onreadystatechange event and check the status in it, like below- 因此,在您的代码中,您可以添加侦听器以检查onreadystatechange事件并检查其中的状态,如下所示:

function sendRequest(){
    //get refresh access token   
    var accessToken = 'xxx';
    //get user_id
    var userid = document.getElementById('userid').value;
    //get request_token
    var requestToken = document.getElementById('requestToken').value;

     //insert database
     var xmlHttp = new XMLHttpRequest();
     var url="database.php";
     var parameters = "accessToken=" + accessToken + "&userid=" + userid + "&requestToken=" + requestToken ;

     //Here is the onreadystatechange event listener.
     xmlHttp.onreadystatechange = function() {
         if (this.readyState == 4 && this.status == 200) {
             alert('success');
         } else if(this.readyState == 4 && this.status != 200) { 
             alert('error');
         }
     };
     xmlHttp.open("POST", url, true);

    //send request
     xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xmlHttp.setRequestHeader("Content-length", parameters.length);
     xmlHttp.setRequestHeader("Connection", "close");
     xmlHttp.send(parameters);

    //check status
    if(xmlHttp.status == Ok){
        alert('success!');
    }else {
        alert('error');
    }

}
<!DOCTYPE html>
<html>
<body>

<h2>Using the XMLHttpRequest object</h2>

<button type="button" onclick="loadXMLDoc()">Change Content</button>

<p id="test"></p>

<script>


function sendRequest(){
    //get refresh access token   
    var accessToken = 'xxx';
    //get user_id
    var userid = document.getElementById('userid').value;
    //get request_token
    var requestToken = document.getElementById('requestToken').value;


    var xmlHttp = new XMLHttpRequest();
    var xhttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        document.getElementById("test").innerHTML =
        this.responseText;
      }
    };
    //insert database
     var url="database.php";
     var parameters = "accessToken=" + accessToken + "&userid=" + userid + "&requestToken=" + requestToken ;
     xmlHttp.open("POST", url, true);

    //send request
     xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xmlHttp.setRequestHeader("Content-length", parameters.length);
     xmlHttp.setRequestHeader("Connection", "close");
     xmlHttp.send(parameters);



}

</script>

</body>
</html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM