gpt4 book ai didi

javascript - Angular JS - 设置域范围内的 $cookies 失败

转载 作者:搜寻专家 更新时间:2023-11-01 04:50:08 25 4
gpt4 key购买 nike

我在 angularjs 应用程序中设置 cookie 时遇到了麻烦。情况是我想设置一个在站点范围内可用的 cookie,但我不知道如何使用 angular js 默认 $cookies 对象为 cookie 设置所有参数。

例如,通常在 Javascript 中我会这样写

var exp = new Date();
exp.setTime(exp.getTime()+(24*60*60*1000)); // expires after a day
document.cookie = "myCookies=yes;expires="+exp.toGMTString()+ ";domain=.example.com;path=/";

但由于 DOM 对象无法轻松加载到我的应用程序中,所以我必须使用 $cookies (angular-cookies.js)。新代码是:

angular.module('MyApp')
.controller('MyCtrl', function ($scope, $filter, Slug,PUBLIC_ROUTES, $cookies) {
var myCookies = $cookies['mycookies'];
if (typeof myCookies == 'undefined' || typeof myCookies == undefined) {
$cookies['mycookies'] = "yes";
}
});

但是我无法设置到期日期、路径和域,因为这些对 $cookie 不可用。

我该怎么办?

最佳答案

如果您使用的是 angular 1.4+,只需在主应用模块的配置部分设置 $cookiesProvider.defaults。示例:

angular.module('my-app', [ngCookies])
.config(['$cookiesProvider', function($cookiesProvider) {
// Set $cookies defaults
$cookiesProvider.defaults.path = '/';
$cookiesProvider.defaults.secure = true;
$cookiesProvider.defaults.expires = exp_date;
$cookiesProvider.defaults.domain = my_domain;
}]);

只是不要犯我最初为新对象分配默认值时犯的同样错误:

$cookiesProvider.defaults = {path: '/', secure: true};

这会破坏对象的引用并且默认值不会再被覆盖。

关于javascript - Angular JS - 设置域范围内的 $cookies 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31719285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com