javascript - localstorage 在我的 Angular 应用程序中不起作用
问题描述
我的 angular11 应用程序有一个登录页面,当我点击连接按钮时,我调用了一个 rest API JAVA。
我得到了数据,但我无法将我的数据存储到我的 google chrome 浏览器和 mozilla 中的 localstorage
login() {
this.authService.login(this.loginForm.value).subscribe(
res => this.handleResponse(res)
)
}
handleResponse(data:any) {
localStorage.setItem('token', data.token);
localStorage.setItem('id', data.id);
localStorage.setItem('nom', data.nom);
this.router.navigateByUrl('/livres');
}
我检查我的浏览器是否支持 localstorage
if (window.localStorage) {
console.log('local storage supported !!!');
} else {
console.log('local storage not supported $$$ ');
}
我得到支持的控制台本地存储!但任何键和值都是存储到我的网站
这是我的数据{令牌:“eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJte…E5OH0.8MxLhs1puaQHlA2UZ-I1lBirWtZxj0FvsJ8_uvB53DI”,名称:“toto”,id:“1”}
任何想法 ?
解决方案
您只能将字符串设置为 localStorage 或 sessionStorage,因此您可以使用您的数据创建一个对象,然后使用 JSON.stringify(tokenData)。(将对象转换为字符串)。
要从存储中检索,您可以使用:
JSON.parse(localStorage.getItem(tokenData));
尝试这个:
handleResponse(data:any) {
let tokenData = {
token: data.token,
id: data.id,
nom: data.nom
};
localStorage.setItem('tokenData', JSON.stringify(tokenData);
this.router.navigateByUrl('/livres');
}
推荐阅读
- php - laravel 8 多用户使用 auth 命令重定向到不同的页面
- openedge - 将前导零添加到正在进行的字符变量 4gl
- html - 绝对定位的伪元素出现在 DOM 中的其余内容之前
- laravel - 如何更改图片上传目录并在 laravel 中查看图片 url
- github - 具有多个存储库的单个自定义子域的 Github 页面(使用路径)
- python-3.x - Docker - 无法运行脚本
- javascript - 如果文件大小或扩展名不正确,如何显示警报
- matlab - 给定它以编程方式处理的情况下,如何获取 Matlab StateFlow 输入的端口号?
- javascript - 将 GA 集成到 chrome 扩展、清单 v3 中
- python - IndentationError: unindent does not match any external indentation level 我什么都不懂