如何在jQuery中从Web服务返回的JSON提取token并存储到localStorage
解决提取token并存储到localStorage的问题
嘿,我来帮你搞定这个问题!首先得说清楚你代码里的问题出在哪:
你拿到的response已经是一个完整的JSON对象了,直接包含token和expires两个属性,但你却用了$.each去遍历它,而且还错误地尝试访问element.value——这个对象里根本没有value这个属性,这就是导致那个TypeError的原因。
正确的写法其实超简单:
直接跳过$.each这一步,从response里直接取出token值就行,代码修改如下:
$.ajax(settings).done(function (response) { console.log(response); $(".Results").html(JSON.stringify(response)); // 直接放对象会显示[object Object],转成字符串才能正常展示响应内容 var token = response.token; // 直接获取token属性值 console.log(token); localStorage.setItem("token", token); });
额外补充(如果非要用$.each的情况):
其实完全没必要遍历这个对象,但如果出于学习目的想试试,正确的遍历写法是这样:
$.each(response, function (key, value) { if (key === 'token') { console.log(value); localStorage.setItem("token", value); } });
这里key是对象的属性名(比如'token'、'expires'),value就是对应的属性值,所以当key匹配'token'时,value就是你要的令牌字符串。
内容的提问来源于stack exchange,提问作者Ortund
相关产品推荐
相关产品推荐

