我正在尝试删除一些由javascript设置的cookie,它在Firefox和Chrome中运行良好,但在IE中却不行,它删除了IE中的cookie值而不是文件,所以当我加载页面时使用cookie它删除后加载一些垃圾而不是任何东西。
我像这样设置了cookie
var exdate = new Date();
exdate.setDate(exdate.getDate() + 1);
var c_value = escape(data.d) + "; expires=" + exdate.toUTCString();
document.cookie = "user" + "=" + data.d;
并将其删除
document.cookie = 'user=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
我的问题在哪里?
我还有用于ASP.Net的C#中的代码来删除cookie,但是它不能在任何Web浏览器中工作,(它适用于由C#设置而不是使用Javascript设置的cookie)问题出在哪里还有这个代码吗?
FormsAuthentication.SignOut();
Response.Cookies["user"].Expires = DateTime.Now.AddDays(-1);
Session.Clear();
Response.Cookies.Clear();
答案 0 :(得分:0)
您必须将cookie发送到响应流,否则您的修改将永远不会提交给浏览器。
我通常使用此代码注销:
FormsAuthentication.SignOut();
CurrentContext.Session.Abandon();
HttpCookie c = CurrentContext.Request.Cookies[FormsAuthentication.FormsCookieName];
if (c != null)
{
c.Expires = DateTime.Now.AddDays(-1);
CurrentContext.Response.Cookies.Add(c);
}
答案 1 :(得分:0)
创建Cookie时尝试包含域名
Response.Cookies(“abc”)。Domain =“。xyz.com”
并删除
Response.Cookies("uid").Value = Nothing
Response.Cookies("abc").Expires DateTime.Now.AddDays(-1)
Response.Cookies("abc").Domain = ".xyz.com"
并使用以下工具检查您的Cookie