經(jīng)過查閱文檔等發(fā)現(xiàn)1.3多的 $cookies 或者 $cookieStore 沒有設(shè)置option的封裝规丽,網(wǎng)上找了很多都是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去設(shè)置cookie的有效期
var date = new Date();
date.setTime(date.getTime() + 30 * 60 * 1000); //設(shè)置date為當(dāng)前時(shí)間+60分
document.cookie = "token=" + result.data.token + "; expires=" + date.toGMTString();
然后通過字符串截取讀取token的值:
document.cookie得到一串“token=xxx;others=xxx;”的字符串
splite把字符串截成數(shù)組赌莺,然后再讀出其值====>注意這里是坑冰抢,你要清楚知道你要的是cookie里存儲(chǔ)的第幾個(gè)值,要不你還要重新去找這個(gè)key是什么艘狭;再者你的value里面也有可能有“=”使得下面的取值變得不精準(zhǔn)挎扰;
document.cookie.split(";")[0].split("=")[1];
最后remove這個(gè)cookie的時(shí)候,我還是用了angular里的
$cookieStore.remove('token');