Местное хранилище с Java сервлетом
У меня есть проект, который требует, чтобы пользователь вошел в систему. Это делается через страницу входа в систему, которая использует AJAX-вызов сервлета для проверки пользователя. Сервлет отвечает строкой, сообщающей ему, куда идти дальше (либо на главной странице, либо на странице "Несанкционированный доступ". В случае ошибки отображается предупреждение с трассировкой стека). Если пользователь пытается перейти на главную страницу без проверки, я хочу, чтобы он перенаправил их обратно на страницу входа.
Я пытаюсь научиться использовать localStorage, чтобы установить валидацию, чтобы она переносилась со страницы на страницу в системе. Однако localStorage, похоже, не сохраняется на разных страницах.
Кстати, стандарт компании - IE9 (хотя большинство использует IE11).
При нажатии кнопки "Ввод" запускается следующий код JS:
$.ajax({
url: 'MyServlet',
type: 'GET',
data: {formType: 'validate',
login: $('#txtLogin').val(),
password: $('#txtPassword').val()
},
dataType: 'html',
success: function (responseText) {
if (responseText.indexOf(".html") > -1) {
localStorage.setItem("name","authorized");
alert(localStorage.getItem("name"));
location.href = "http://<intraserver>/newSite/" + responseText;
} else {
alert(responseText);
}
}
});
Когда главная страница загружена, у меня есть вызов onload:
function checkValid() {
try {
var name = localStorage.getItem("name");
alert(name);
if(name==null){
window.location.replace('http://MyServlet/MyProject');
}
}
catch (e) {
alert(e.message);
}
}
Когда нажата кнопка "Ввод", я получаю предупреждение "авторизовано". Тем не менее, когда главная страница загружается, оповещение "name" говорит о нуле.
Что я делаю неправильно?