如何检查我的XMLHttpRequest发布方法是否成功?

时间:2019-04-30 07:41:21

标签: javascript json api http

我不太习惯使用API​​。我编写了一个向API发送数据的函数。我在文本框文本更改事件上调用了此函数。我没有得到它是否正在工作,因为我没有得到任何错误。下面是函数:

function sendAPIData(url,introduction,coordinateid){
    var xhttp = new XMLHttpRequest();
    xhttp.open("POST", "http://192.168.51.212:3368/casigo/sDAGinput",true);
    xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    var input = JSON.stringify({
      "coordinate": coordinateid,
      "url": url,
      "introduction": introduction
    });
    xhttp.send(input);
}

它应该返回一些输入字符串。

2 个答案:

答案 0 :(得分:3)

要检查服务器的响应,可以使用回调函数:

function sendAPIData(url,introduction,coordinateid) {
    var xhttp = new XMLHttpRequest();
    xhttp.open("POST", "http://192.168.51.212:3368/casigo/sDAGinput",true);
    xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    var input = JSON.stringify({
      "coordinate": coordinateid,
      "url": url,
      "introduction": introduction
    });

    // callback function
    xhttp.onload = function(res) {
      if (xhttp.readyState === 4) {
        if (xhttp.status === 200) {
          console.log("OK");
        } else {
          console.error("ERROR");
        }
      }
    };

    xhttp.send(input);
}

xhttp.onload是XMLHttpRequest完成后将被调用的函数。其参数res是服务器的响应。

答案 1 :(得分:0)

XMLHttpRequest包含statusreadyState属性,可以通过使用onreadystatechange事件来使用。像下面的代码这样的东西应该可以工作。

xhttp.onreadystatechange=function(){
   //readyState == 4 means the request is done and a response is received from the server

   if (xhttp.readyState==4 && xhttp.status==200 && typeof(xhttp.responseText) == 'string'){
      //Do something          
   }
}