我有一个奇怪的问题设置并在IE9中获取cookie。这适用于Firefox,Chrome等。
我正在使用简单的javascript方法来设置cookie。我正在设置路径为“/ Phoenix”。在其他浏览器(即FF& Chrome)上,我检索cookie的值没有问题,URL路径是“/ Phoenix”,“/ Phoenix /”等等......
然而在IE中(特别是9但它在旧版本中的行为也相同)当我的URL路径为“/ Phoenix”时,我无法检索cookie - 如果我将URL路径更改为“ /凤凰/“它会工作正常。
当我使用开发人员工具并在URL路径为“/ Phoenix”时检查文档元素时,cookie不存在,但是,当我将URL路径更改为“/ Phoenix /”时,它就存在。
以下是我的获取和设置功能:
var BasicUtils = new function ()
{
this.GetCookie = function(c_name)
{
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++)
{
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name)
{
return unescape(y);
}
}
}
this.SetCookie = function(c_name, value, exdays, path)
{
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value + '; path=' + path;
}
}
这是设置的地方:
$(window).unload(function ()
{
var userStateCookie = UserStateManager.GetUserState();
BasicUtils.SetCookie(mainPage.CookieName, $.toJSON(userStateCookie), 1825, mainPage.CookiePath);
});
这是加载的地方:
var cookieString = BasicUtils.GetCookie(this.CookieName);
在所有情况下,路径都设置为“/ Phoenix”。 cookie名称是相同的,当我检查或观看时,它只是在document.cookie中找不到。
同样,这似乎只是一个IE问题。它可能是某个地方的安全设置吗?有什么建议?
任何帮助表示赞赏!谢谢!