我正在尝试在console.log中添加一个我已添加到localstorage的令牌。这是代码:
ngOnInit(){
console.log('Member Info: ', JSON.parse(localStorage.getItem('LOCAL_TOKEN_KEY')));
}
这看起来对我来说,但是当我运行它时,我收到以下错误。
Error: Uncaught (in promise): SyntaxError: Unexpected token o in JSON at position 1
SyntaxError: Unexpected token o in JSON at position 1
有人认为这有什么问题吗?
答案 0 :(得分:2)
我相信这是因为您的数据已经是一个对象,无需再次解析。
只需尝试:
console.log('Member Info: ', localStorage.getItem('LOCAL_TOKEN_KEY'));
未捕获的SyntaxError:位置1的JSON中的意外标记o
当您尝试将已经是JSON对象的元素解析为JSON Object时,是典型的JavaScript错误。
<强>更新强>
在保存到LocalStorage时似乎有问题,所以这里有一个问题!
// To save to LocalStorage
localStorage.setItem('LOCAL_TOKEN_KEY', JSON.stringify({
testData: 123
}));
// To read from LocalStorage
console.log(JSON.parse(localStorage.getItem('LOCAL_TOKEN_KEY')));
清理LocalStorage:
在浏览器中按下F12(对于Chrome),转到“应用程序”选项卡,打开“LocalStorage”选项卡,然后选择您的应用程序名称。你会在那里找到你的LocalStorage,将其删除。
答案 1 :(得分:1)
在存储到本地存储之前对令牌进行字符串化。
localStorage.setItem('LOCAL_TOKEN_KEY', JSON.stringify({'aa': 'bb'}));
let token = localStorage.getItem('LOCAL_TOKEN_KEY');
JSON.parse(token);
答案 2 :(得分:0)
您还可以尝试将JSON对象转换为字符串:
console.log('Member Info: ', JSON.stringify(localStorage.getItem('LOCAL_TOKEN_KEY')));