为什么我无法使用 Cookie.js 删除 cookie?
Why am I not able to delete a cookie using Cookie.js?
我正在使用 Jscookie.js
我正在根据服务器的响应传递一个 cookie(在 header 上)。
我可以使用 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 以在删除 cooke 时指定域的客户端代码:
在服务器上:
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' });
我正在使用 Jscookie.js 我正在根据服务器的响应传递一个 cookie(在 header 上)。 我可以使用 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 以在删除 cooke 时指定域的客户端代码:
在服务器上:
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' });