0

我想通过使用 Ajax 和 Javascript 调用 API 来实现登录。

用户输入用户名和密码,然后单击按钮“login()”将被调用。如果输入正确,它应该打开欢迎页面。我实现它如下。但它不起作用!

function login() {
  var url = "http://...";
  var username = document.getElementById("username").value;
  var password = document.getElementById("password").value;

  var xhr = new XMLHttpRequest();
  xhr.open("POST", url, true);

  xhr.setRequestHeader("Content-Type", "application/json");

  console.log("before function. ")    
  xhr.onreadystatechange = function () {
    console.log("before if. ")
    if (this.readyState == 4 && this.status == 200) {
      console.log("inside if. " + xhr.responseText);
      window.open(welcome);
    }
  };

  var obj = { UserName: username , Password: password }
  var data = JSON.stringify(obj);

  xhr.send(data);
  console.log("END ");
}

按照建议,我添加了几个控制台日志来调试它,我发现它永远不会在 if 中运行。控制台上没有错误,这是控制台上的输出:

before function. 
END
before if.

(之前重复了3次)

我已经检查过 Postman 的 API。有用。如果用户名和密码正确,则返回用户的所有信息,http状态码为201。如果输入不正确,则返回错误信息,状态码为401。

4

0 回答 0