以下.Net设置设置了Cookie
HttpCookie c = new HttpCookie("tw");
c.Expires = DateTime.Now.AddDays(100);
c.Path = "/";
c.Secure = false;
c.HttpOnly = false;
以下javascript读取cookie
function getCookie(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);
}
}
}
请求中不会发送额外的标头。这适用于Firefox但不适用于IE或Safari
答案 0 :(得分:1)
这里发生的是您没有为您的cookie设置值。在IE中,无价值cookie不包含'='。这意味着,在你的代码x中是“”,而y是“tw”。 然后,在if子句中,名称比较总是失败,因为x是一个空字符串。结果,该函数返回未定。以一种处理IE中无值cookie中缺少'='的方式重写您的逻辑。