Я хочу реализовать вход в систему, вызвав API с использованием Ajax и Javascript.
Пользователь вводит имя пользователя и пароль и, нажав кнопку «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 раза)
Я уже проверил API Почтальоном.Оно работает.Если имя пользователя и пароль верны, он возвращает всю информацию о пользователе, а код состояния http - 201. Если ввод неправильный, возвращается сообщение об ошибке, а код состояния - 401.