【发布时间】:2014-11-20 17:36:15
【问题描述】:
使用 Angularjs 我正在开发一个移动应用程序,我需要在注销后清除 cookie。我要使用的服务是经过 cookie 验证的,所以在注销后我需要清除它们。
为此,我尝试了传统的 JS 程序来清除这些 cookie,但没有奏效。
在对其进行更多研究之后,我添加了 angular-cookies 库并使用 ngCookies 来访问我范围内的 $cookies 和 $cookieStore。我收到的所有examples 或 SO 帖子都说如何使用$cookies 和$cookieStore 添加/编辑/删除新cookie。
但是我不是自己设置cookies,它是像JSESSIONID,SMSESSION..so on(一个大字符串)一样动态设置的。当我尝试$cookieStore.get('JSESSIONID') 时,结果未定义。
AFAIK cookie 是键值对,如果是,那么为什么我没有定义。 (我是不是哪里错了)
我是否可以读取所有 cookie 并使用 angular-cookies 库重置/清除它们。
【问题讨论】:
-
当您说“我使用的服务”时,该服务是您的,它是否托管在同一个域上?您无法读取或写入其他域的 cookie。
-
正如我所说的它是一个移动应用程序,意味着我正在调用一个将 cookie 信息存储在设备 webkit 内存中的 web 服务。我可以清除吗?
-
我不确定。在 iOS 上,我很确定如果设置 cookie 的是不同的域,标准 Safari 浏览器和
UIWebViews 都将遵守您不能访问另一个域的 cookie 的规则。您可以使用NSHTTPCookieStorage删除您想要的 cookie。 -
对于这个问题,我最终使用了 Cordova 插件来清除 cookie。很长一段时间后检查此帖子,认为该解决方案可能对某人有所帮助..干杯!!
标签: javascript angularjs cordova cookies