即使成功

时间:2017-11-16 07:43:12

标签: javascript post xmlhttprequest

这"工作"脚本将JSON发送到外部API。它未能正确执行的操作是控制台中的日志成功或错误。 即使它有效,它仍然显示我"错误"三次。 问题:

一个。如果成功,导致错误消息的代码中的错误在哪里?

编辑:这部分(a)已经被Suren Srapyan回答,我把abc.status搞砸了,下面的代码已经更新

湾de XMLHttpRequest()总是运行三次,因此将消息记录三次或者是否由其他内容引起?

编辑:这很可能是由代码的其他部分引起的

var abc = new XMLHttpRequest();
  var url = "http://myurl";
  abc.open("POST", url, true);
  abc.setRequestHeader("Content-type","application/json");
  abc.onreadystatechange = function () {
    if (abc.status >= 200 && abc.status < 300) {
        console.log(abc.responseText);
        console.log("Success!!");
    } else {
      console.log("Error!");
    }

1 个答案:

答案 0 :(得分:2)

值不能同时为>= 200且小于200。因此,您将始终收到Error消息。我认为您需要检查statusCode仅与200进行比较。但也要注意你得到了status。如果您要进入cross site,则会将status代码设置为0

&#13;
&#13;
var abc = new XMLHttpRequest();
var url = 'https://jsonplaceholder.typicode.com/posts/1';

abc.onreadystatechange = function () {
  console.log(abc.status);
  if (abc.status === 200) {
      console.log(abc.responseText);
      console.log("Success!!");
  } else {
    console.log("Error!");
  }
}

abc.open("GET", url, true);
abc.setRequestHeader("Content-type","application/json");
&#13;
&#13;
&#13;