У меня есть проект C # MVC, и это мой файл Javascript, который проверяет, вошел ли пользователь в систему. У меня проблема в том, что страница постоянно обновляется, даже если значение моего shouldlogin
меняется.Смысл этого файла JS состоит в том, чтобы проверить, вошел ли пользователь в систему, и перенаправить его на домашнюю страницу, авторизованную в заголовке.Я знаю, что это не совсем хороший способ сделать это, но если у кого-то есть какое-то руководство, это будет высоко оценено.Спасибо!
var shouldlogin = true;
var token = localStorage.getItem("token");
$(document).ready(function(){
var loggedIn = checkLogin();
if(loggedIn === true && shouldlogin === true)
{
if (shouldlogin === true)
{
setHeader();
redirectToHome();
return true;
}
}
else if(loggedIn === false && shouldlogin === false)
{
redirectToLogin();
return true;
}
return false;
});
function setHeader()
{
$.ajaxSetup({
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', token);
}
});
}
function redirectToHome()
{
shouldlogin = false;
$.ajax({
type: 'GET',
contentType: 'application/json; charset=utf-8;',
url: 'Home/Index',
success: function (response) {
$("body").html(response);
}
});
}
function checkLogin()
{
if (token === null)
{
return false;
}
else
{
return true;
}
}
function redirectToLogin()
{
$.ajax({
type: 'GET',
contentType: 'application/json; charset=utf-8;',
url: 'Account/Index',
success: function (response) {
$("body").html(response);
}
});
}
function logOut()
{
shouldlogin = true;
localStorage.clear();
redirectToLogin();
}
РЕДАКТИРОВАТЬ: я обнаружил, что это застряло в бесконечном цикле, игнорируя мои условные утверждения.Я распечатываю их, и это все еще показывает, что они не должны действительно приземлиться в первом if (тот, который вызывает бесконечное обновление).