Javascript AngularJS在浏览器关闭时删除所有cookie的方法
我读过其他帖子,其中讨论了其他技术在浏览器关闭时清理浏览器cookie的方法,但没有一篇文章说明如何让AngularJS做到这一点浏览器关闭时,如何触发AngularJS中的cookie删除方法运行? 在AngularJS 1.4.8中,可以使用语法Javascript AngularJS在浏览器关闭时删除所有cookie的方法,javascript,angularjs,Javascript,Angularjs,我读过其他帖子,其中讨论了其他技术在浏览器关闭时清理浏览器cookie的方法,但没有一篇文章说明如何让AngularJS做到这一点浏览器关闭时,如何触发AngularJS中的cookie删除方法运行? 在AngularJS 1.4.8中,可以使用语法$cookies.remove('keyname')删除cookies。我可以编写一个方法来按名称删除所有cookie。但如何确保浏览器关闭时调用cookie删除方法?如果希望在关闭浏览器选项卡时调用该方法,语法是否有任何不同 持续努力: 根据@
$cookies.remove('keyname')
删除cookies。我可以编写一个方法来按名称删除所有cookie。但如何确保浏览器关闭时调用cookie删除方法?如果希望在关闭浏览器选项卡时调用该方法,语法是否有任何不同
持续努力:
根据@User2341963的建议,我在应用程序主模块的
run
方法中添加了cookie删除代码。当我把它放在应用程序其他地方的logout()
方法中时,同样的代码可以正确运行,但当我在firefox调试器中放置断点并关闭浏览器时,我发现浏览器关闭时,cookie删除代码永远不会运行当浏览器关闭时,我对代码做了哪些具体更改以使AngularJS删除所有cookie?
以下是应用程序主模块的代码,包括run()
方法:
angular
.module('hello', [ 'ngRoute', 'auth', 'home', 'secure', 'public1', 'navigation' ])
.config(
function($routeProvider, $httpProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl : 'js/home/home.html',
controller : 'home'
})//plus other routes
.otherwise('/');
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}
).run(['$cookies', '$window', '$log', function($cookies, auth, $window, $log) {
//other stuff
$window.onbeforeunload = function() {
// Clearing all cookies now!
$cookies.remove("AUTH1");
$cookies.remove("AUTH2");
$cookies.remove('procStep');
$cookies.remove('usrname');
$cookies.remove('exists');
$cookies.remove('wid');
};
}]);
如果您只需要cookies,因为您需要将其发送到后端服务器,那么您可以使用主控制器的事件 使用
$on.$destroy
当控制器即将销毁时调用此事件
另一个选择是使用angularjs
当窗口自动关闭时,会话存储被删除可能类似于?基本上设置window.onbeforeunload函数使用会话cookies。不用担心干净up@user2341963我应该把它放在哪个控制器里?该应用程序有许多控制器。该应用程序的主模块中只有
module()
、.config()
和.run(){}
。我会将其放在run
中,类似于。或者您也可以尝试会话cookies,如charlietfl所示suggested@user2341963我在OP的末尾添加了代码,显示了我如何尝试实现您的建议,并解释了调试器显示在浏览器关闭时没有调用新的cookie清除方法。我还可以尝试什么?我无法验证你的答案,因为我现在正在做其他事情。但是感谢你和+1在这个老问题上帮助别人。其他人请验证这一点,并发表评论说明验证。