【问题标题】:Remove cookie problems JS-COOKIE移除 cookie 问题 JS-COOKIE
【发布时间】:2022-02-13 00:01:41
【问题描述】:

JS Cookies 移除 cookie,未定义

大家好,我试图从域中删除 cookie,但我不能,控制台返回未定义。

当我登录时,cookie 在 .dev.books.com 中设置,但之后 URL 更改为 platform.dev.books.com 并保留相同的 cookie。我要删除的 cookie 的名称是 bookId,这是我的尝试:

Cookies.set('bookId', ' ');

但要更改 cookie 值,请使用域 platform.dev.books.com 创建一个新的

如果我使用

Cookie.remove('bookId') 

控制台返回未定义

谢谢,任何帮助都会有所帮助

【问题讨论】:

    标签: javascript cookies js-cookie


    【解决方案1】:

    您可以取消设置 cookie 并将过期标头时间设置为过去的日期

    document.cookie = "bookId=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
    

    【讨论】:

    • 当我这样做document.cookie = "bookId =; expires=Thu, 01 Jan 1970 00:00:00 UTC";控制台返回"bookId=; expires=Thu, 01 Jan 1970 00:00:00 UTC"但不更新值或删除cookie:/
    【解决方案2】:

    这确实取决于环境,您可能必须设置与浏览器中存储的cookie域匹配的域属性

    Cookies.remove('name', { domain: 'subdomain.site.com' });

    如果网站托管在反向代理或负载平衡器之后,您可能会遇到不匹配的域。

    确保使用 fiddler 检查 http 标头的最佳方法。

    【讨论】:

      【解决方案3】:
      Cookie.remove('bookId') 
      

      ^^这行不通。您始终需要包含当前页面的相对路径。像这样:

      Cookies.remove('name', { path: '/', domain: '.yourdomain.com' })
      

      “/”代表根页面。

      【讨论】:

        【解决方案4】:

        删除一个对当前页面路径有效的cookie:

        Cookies.set('name', 'value', { path: '' })
        Cookies.remove('name') // fail!
        Cookies.remove('name', { path: '' }) // removed!
        

        重要!删除 cookie 并且您不依赖默认属性时,您必须传递用于设置 cookie 的完全相同的路径和域属性:

        Cookies.remove('name', { path: '', domain: '.yourdomain.com' })
        
        Note: Removing a nonexistent cookie neither raises any exception nor returns any value.
        

        我建议您始终尝试阅读您使用的任何软件包的自述文件,稍后谢谢我,哈哈。 https://www.npmjs.com/package/js-cookie

        【讨论】:

          猜你喜欢
          • 2011-09-05
          • 2011-12-24
          • 2011-08-05
          • 2011-10-31
          • 2015-12-19
          • 2011-03-25
          • 1970-01-01
          • 1970-01-01
          • 2015-04-24
          相关资源
          最近更新 更多