AngularJS:将对象存储在 cookie 中,给出 [Object Object] 的结果
Posted
技术标签:
【中文标题】AngularJS:将对象存储在 cookie 中,给出 [Object Object] 的结果【英文标题】:AngularJS: Storing an object in a cookie giving result of [Object Object] 【发布时间】:2015-08-20 03:51:13 【问题描述】:在将此用户对象发送到我的服务时,我试图在 cookie 中存储一组用户凭据 -
this.SetCookie = function (user)
$cookies.user = user;
但是,当我尝试检索此 cookie 时,我得到的不是一个对象,而是一个显示“[Object Object]”的字符串
我可以将所有用户凭据单独存储在他们自己的 cookie 中,因为我知道我可以做到这一点,但这似乎效率很低?有一个简单的解决方法吗?我为这个问题找到的最佳结果与 JQuery 有关,对我不起作用。
【问题讨论】:
用户是对象,那么你需要在做console.log
时使用JSON.stringigy(user)
谢谢,这行得通(减去错字:p),当我取回 cookie 时,我只使用 JSON.parse 将其恢复为对象格式。
我应该添加答案吗?
当然,我会接受的:)
看一下,我已经添加了答案..'
【参考方案1】:
在 Angular 1.4 中,我发现通过像这样创建 cookie 来存储 JSON 对象:
var obj =
currentUser:
username: "testUN",
authdata: authdata
;
$cookies.putObject('cookieName', obj);
允许您像这样取回 cookie:
var cookieWObject = $cookies.getObject('cookieName');
然后得到这样的值:
var username = cookieWObject.currentUser.username;
var authdata = cookieWObject.currentUser.authdata;
【讨论】:
【参考方案2】:您正在直接打印对象,该对象将始终显示[Object Object]
,因为它包含JSON
的对象,在打印它时它使用警报方法它使用.toString()
方法在控制台中显示它。
您需要创建JSON.stringify(user)
,它将所有JSON
对象转换为字符串。使用该对象时,您需要使用 JSON.parse(user)
将对象转换为 JSON
【讨论】:
【参考方案3】:JSON.stringify(user); //for storing in cookies
JSON.parse($cookies.user); //for converting into an object
【讨论】:
【参考方案4】:对于在 Angular 中使用 cookie,必须在控制器中注入依赖项 'ngCookies' 或在 angular.module('app',[ngCookies]) 中声明,不推荐使用 $cookieStore。
var app = angular.module('myApp',['ngCookies']);
app.controller('cookiesController',['$scope','$cookies',function($scope,$cookies)
//using put method you can add value using key value
$cookies.put('Kye','Admin');
//access cookies value
console.log($cookies.get('Key'));
//You can add also object in Cookies
var data =
'name':'admin',
'pass':'admin'
$cookies.putObject('data',data);
//access object value
console.log($cookies.getObject('data'));
]);
【讨论】:
以上是关于AngularJS:将对象存储在 cookie 中,给出 [Object Object] 的结果的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS 中会话存储、本地存储和 Cookie 的区别
将 jwt 保存在 cookie 中以将其传递到本地存储是不是安全?
NodeJS:在客户端将 JWT 存储在哪里? sessionStorage、localStorage 还是 cookie?