美文网首页
浏览器缓存 前端页面获取存放token

浏览器缓存 前端页面获取存放token

作者: 书十一 | 来源:发表于2020-12-07 14:23 被阅读0次

登录时,通过Ajax 获取token用于用户验证

//获取token 
 $.ajax({
         url: '/user/login',
         data: {
             "Account": "ssy",
             "Password": "123456"
         },
         type: "post",
         dataType: "json",
         success: function(data) {
             var token = data.token;
            //存放userTokenb
             window.localStorage.setItem('userToken', token);
             console.log(window.localStorage.getItem("userToken"))
        }
     })

    var  userToken = window.localStorage.getItem("userToken");
            $.ajax({
                //将token放入headers
                headers: {
                    "token": userToken //此处放置请求到的用户token
                },
                url: "/user/List", //请求url
                type: "post",
                dataType: 'json',
                data: {

                },
                success: (data) => {
                    console.log(data)
                }
            })

浏览器缓存sessinonStorage和localStorage

//sessinonStorage只在当前窗口有效 生命随浏览器关闭终止 容量约5M
window.sessionStorage.setItem("name",'男');
//获取name
console.log(window.sessionStorage.getItem('name'));
//清空Storage
window.sessionStorage.clear();
//删除数据
window.sessionStorage.removeItem('age')

a页代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <a id="a1" href="./b.html" target="view_window"></a>
</body>
<script>
    //sessinonStorage只在当前窗口有效 生命随浏览器关闭终止 容量约5M
    window.sessionStorage.setItem("name", '法外狂徒张三');
    //获取name
    var name = window.sessionStorage.getItem('name')
    console.log();
    const a1 = document.getElementById('a1');
    const text = document.createTextNode(name)
    a1.appendChild(text)
</script>

</html>

b页代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <a id="a1"></a>
</body>
<script>
    //获取name
    var name = window.sessionStorage.getItem('name')
    const a1 = document.getElementById('a1');
    const text = document.createTextNode(name)
    a1.appendChild(text)
</script>

</html>

先打开a页面储存name 在打开桌面b获取时会获取不到如下图


image.png
image.png

但是在a页点击a链接跳转b却可以获取到


image.png

当跳转到b时修改name,在返回a页查看name, a页并没有发生改变(这说明a和b页面不是公用的一个sessionStorage,而是在页面跳转时a传给了b)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <a id="a1"></a>
</body>
<script>
    window.sessionStorage.setItem("name", '执法官李四');
    var name = window.sessionStorage.getItem('name')
    const a1 = document.getElementById('a1');
    const text = document.createTextNode(name)
    a1.appendChild(text)
</script>

</html>
image.png

//localStorage在关闭浏览器后依然有效 容量约20M
//放入缓存中
window.localStorage.setItem('userToken', token);
//获取
console.log(window.localStorage.getItem("userToken"))
//删除数据
window.sessionStorage.removeItem('userToken')

相关文章

网友评论

      本文标题:浏览器缓存 前端页面获取存放token

      本文链接:https://www.haomeiwen.com/subject/kugzwktx.html