【发布时间】:2020-09-25 11:21:50
【问题描述】:
我有一个带有访问令牌的简单登录和注销应用程序的演示。如果用户还没有登录并且他们尝试访问其他页面,这意味着访问令牌为空,他们将直接返回登录页面。我使用 sessionStorage 来存储用户令牌,它工作正常。当我尝试使用 localStorage 时,我的应用程序将不再工作。它仍然登录,但有一个瞬间,它引导我回到登录页面,就像我的令牌根本没有保存一样。成功登录后它仍然会生成新令牌,所以我猜它与localStorage有关。
编辑:我刚刚检查过,他们都存储了我的令牌,但我无法使用 localStorage 将其解析到其他页面。
我的登录页面代码:
$('#btnLogin').click(function () {
$.ajax({
url: '/token',
method: 'POST',
contentType: 'application/json',
data: {
userName: $('#txtFullname').val(),
password: $('#txtPassword').val(),
grant_type: 'password'
},
// Khi đăng nhập thành công, lưu token vào sessionStorage
success: function (response) {
//sessionStorage.setItem("accessToken", response.access_token);
localStorage.setItem("accessToken", response.access_token);
window.location.href = "User.html";
//$('#divErrorText').text(JSON.stringify(response));
//$('#divError').show('fade');
},
// Display errors if any in the Bootstrap alert <div>
error: function (jqXHR) {
$('#divErrorText').text(jqXHR.responseText);
$('#divError').show('fade');
}
});
});
其他页面基本代码:
if (localStorage.getItem('accessToken') == null) {
window.location.href = "Login.html";
}
【问题讨论】:
-
这
localStorage.getItem('accessToken')打印null但sessionStorage.getItem('accessToken')打印一些值吗? -
我刚回来查看,他们都存储了我的令牌,但我无法使用 localStorage 将其解析到其他页面。
-
你能把
debugger放入成功方法中并检查响应吗
标签: javascript ajax local-storage