美文网首页angularjs1.3初学
angular1.3 如何设置cookie的有效期

angular1.3 如何设置cookie的有效期

作者: laiyituan | 来源:发表于2016-08-05 14:57 被阅读457次

    经过查阅文档等发现1.3多的 $cookies 或者 $cookieStore 没有设置option的封装,网上找了很多都是angular1.4之后的解决方法,如:

    angular.module('cookiesExample', ['ngCookies'])
    .controller('ExampleController', ['$cookies', function($cookies) {
      // Find tomorrow's date.
      var expireDate = new Date();
      expireDate.setDate(expireDate.getDate() + 1);
      // Setting a cookie
      $cookies.put('myFavorite', 'oatmeal', {expires: expireDate});
    }]); 
    

    再者是通过修改angular.js源文件,如:

     if (value === undefined) { 
             rawDocument.cookie = escape(name) + "=;path=" + cookiePath + ";expires=Thu, 01 Jan 1970 00:00:00 GMT";
     } else {
             if (isString(value)) { 
                     var now = new Date(); var time = now.getTime(); time += 24*60*60*1000*7; now.setTime(time); cookieLength = (rawDocument.cookie = escape(name) + '=' + escape(value) + ';path=' + cookiePath+";expires="+now.toGMTString()).length + 1 
            }
    }
    

    最后我只能通过原生js去设置cookie的有效期

    var date = new Date();
    date.setTime(date.getTime() + 30 * 60 * 1000); //设置date为当前时间+60分
    document.cookie = "token=" + result.data.token + "; expires=" + date.toGMTString();
    

    然后通过字符串截取读取token的值:
    document.cookie得到一串“token=xxx;others=xxx;”的字符串
    splite把字符串截成数组,然后再读出其值====>注意这里是坑,你要清楚知道你要的是cookie里存储的第几个值,要不你还要重新去找这个key是什么;再者你的value里面也有可能有“=”使得下面的取值变得不精准;

    document.cookie.split(";")[0].split("=")[1];
    

    最后remove这个cookie的时候,我还是用了angular里的

    $cookieStore.remove('token');
    

    相关文章

      网友评论

        本文标题:angular1.3 如何设置cookie的有效期

        本文链接:https://www.haomeiwen.com/subject/hbihsttx.html