AngularJS:在cookie中存储对象,给出[Object Object]的结果

use*_*039 14 javascript cookies json object angularjs

我在将此用户对象发送到我的服务时,尝试将一组用户凭据存储在cookie中 -

this.SetCookie = function (user) {
    $cookies.user = user;
}
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试检索此cookie时,我得到的是我没有得到一个对象,只是一个字符串,上面写着"[Object Object]"

我可以将所有用户凭据分别存储在自己的cookie中,因为我知道我可以做到这一点,但它看起来效率很低?这有一个简单的解决方案吗?我发现这个问题的最高结果是与JQuery有关,并不适合我.

sig*_*i13 39

在Angular 1.4中,我发现通过创建cookie来存储JSON对象,如下所示:

      var obj = {
        currentUser: {
          username: "testUN",
          authdata: authdata
        }
      };
      $cookies.putObject('cookieName', obj);
Run Code Online (Sandbox Code Playgroud)

允许您像这样获取cookie:

var cookieWObject = $cookies.getObject('cookieName');
Run Code Online (Sandbox Code Playgroud)

然后得到这样的值:

var username = cookieWObject.currentUser.username;
var authdata = cookieWObject.currentUser.authdata;
Run Code Online (Sandbox Code Playgroud)

  • 这应该是接受的答案:) (5认同)

Pan*_*kar 11

您正在直接打印对象,[Object Object]因为它包含一个对象,因为它包含一个对象JSON,在打印它时,它使用.toString()方法在控制台中显示它.

您需要JSON.stringify(user)将所有JSON对象转换为字符串.在使用该对象时,您需要使用JSON.parse(user)它将对象转换为JSON