繁体   English   中英

为什么我不能使用Cookie.js删除Cookie?

[英]Why am I not able to delete a cookie using Cookie.js?

我正在使用Jscookie.js ,正在传递来自服务器响应的cookie(位于标头上)。 我可以看到使用cookiemanager +客户端可以接收到cookie。 我的JavaScript尝试删除cookie,但是没有删除cookie。

奇怪的是, 当我在本地运行该项目时,该cookie被成功删除 ,但是当我将其部署到测试服务器时,该cookie不会被删除。

我的服务器代码:

var DownloadToken = request.Headers.GetCookies(UploadToken").FirstOrDefault();
                if (DownloadToken != null)
                {
                    var cookie = new CookieHeaderValue("DownloadToken", DownloadToken["UploadToken"].Value.ToString());  //create a new cookie
                    cookie.Expires = System.DateTime.Now.AddMinutes(6.0); //expire cookie in 6 minutes
                    cookie.Domain = request.RequestUri.Host == "localhost" ? null : request.RequestUri.Host;
                    cookie.Path = "/";
                    response.Headers.AddCookies(new CookieHeaderValue[] {cookie});
                }

return response;

我的客户代码:

Cookies.remove('DownloadToken'); //clears this cookie value for fileDownloadToken

在服务器上设置了我的cookie.domain,因此当我尝试在传递完后在客户端上删除cookie时,它将无法工作,因为要删除cookie,我必须指定域。

例如,我更新了创建cookie的服务器代码,因此它添加了域。 还更新了客户端代码,该代码会在删除库克时删除cookie以指定域:

在服务器上:

var DownloadToken = request.Headers.GetCookies(UploadToken").FirstOrDefault();
                if (DownloadToken != null)
                {
                    var cookie = new CookieHeaderValue("DownloadToken", DownloadToken["UploadToken"].Value.ToString());  //create a new cookie
                    cookie.Expires = System.DateTime.Now.AddMinutes(6.0); //expire cookie in 6 minutes
                    cookie.Domain = request.RequestUri.Host == "localhost" ? null : ".mywebsite.com";
                    cookie.Path = "/";
                    response.Headers.AddCookies(new CookieHeaderValue[] {cookie});
                }

return response;

并在客户端上:

Cookies.remove('DownloadToken', { domain: '.mywebsite.com' });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM