【问题标题】:Angularjs 1.4.x $cookies not working properly only in IE 11Angularjs 1.4.x $cookies 仅在 IE 11 中无法正常工作
【发布时间】:2016-06-20 23:26:18
【问题描述】:

$cookies 在 angularjs 中无法正常工作。在单页应用程序中使用$cookies 来存储真/假(存储为字符串)。

上一版本:

我写的代码

$cookies.put('displayUsers', $scope.somevalue, {expires:somedatetimevalue});

这工作正常,但几个月后,cookie 无法正常工作。 在调查中(在 chrome 中),我发现为同一个域创建了两个名称相同的 cookie displayUsers,但路径不同。第一个路径是 /demo/project1,另一个是 /project1。 url /demo 不是应用程序的一部分,这样的 url 将重定向到完全不同的应用程序。 每次调用上述$cookies.put() 方法时,它都不会使用路径/demo/project1 更新cookie。因此它的值总是假的。

为了解决这个问题,我制作了特定的 cookie 存储部分路径,它在 chrome 中可以正常工作,但在 IE 中却不行。

新版本:

$cookies.put('displayUsers', $scope.somevalue, {expires:somedatetimevalueinyears, path:'/demo/project1'});

我也尝试在保存之前删除cookie,然后它在ie中也不起作用。 我在控制台中检查了 cookie 值,但使用 document.cookie stmt 的 displayUsers cookie 总是错误的。 如果我清除浏览器数据和 cookie 然后尝试,它在 IE 中运行良好,直到现在(不确定一致性)。

如果我们不清除 IE 中的历史记录,失败的可能性是什么?

另外我想知道 cookie 在这两种情况下(无论是否指定路径)在 IE 中的行为。

【问题讨论】:

  • 您是否将ngCookies 包含为依赖项?
  • 是的,这一切都包括在内。这个问题是在将近 6 个月后出现的。为了解决这个问题,我开始使用特定路径存储 cookie。但现在它在 ie 中不起作用。我必须清除历史才能使其在 ie 中工作
  • 你为什么使用 1.4 和 1.5?有什么特别的原因吗?你试过1.5看看还是不行吗?
  • 版本有什么关系。在 1.4.3v 中报告了与 cookie 相关的任何问题。我尝试实现纯 javascript 仍然存在 IE 中的问题。

标签: angularjs cookies


【解决方案1】:

我仍然不确定问题的根本原因。 因此,为了解决这个问题,我将 cookie 名称更改为 'DDdisplayUsers',并将路径更改为 '/'。此更改适用于 IE 和 chrome。

【讨论】:

    猜你喜欢
    • 2014-08-17
    • 2021-03-08
    • 1970-01-01
    • 2013-12-24
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多