微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

由于网址不同,cookie无法用于React项目的两个不同网址

如何解决由于网址不同,cookie无法用于React项目的两个不同网址

我正在使用tiny-cookie将2个不同项目(例如 abc.dev.example.com xyz.dev.example.com )的语言另存为下面

setCookie('language',lang)

当项目在本地开发环境中的 localhost:3000 localhost:8000 上运行时;在chrome调试器中,对于cookie域,如图所示,该域是相同的,即 localhost 参见下面的屏幕截图(与localhost:3000相同)

chrome debugger application for localhost:8000

现在,当我切换到 localhost:3000 时,我得到的语言是 tr 。但是,当我在其域上部署项目时;该语言正在保存并显示在chrome应用程序区域中,但域不同。

如何解决此问题,使其开始工作。我还尝试将两个URL的域(在chrome应用程序中设为.dev.meeraspace.com)编辑为相同,然后开始工作。我也在两个项目中尝试过以下代码,例如

setCookie('language',lang,{ domain: '.dev.example.com' })
setCookie('language',{ domain: '.dev.example.com' }) 

有人可以面对这样的问题吗?请帮忙。谢谢

解决方法

我已通过以下代码使两个域相同来实现此目的:

const url = new URL(window.location.href)
    if (url.hostname !== 'localhost') {
      const domainParts = url.hostname.split('.')
      domainParts.shift()
      const options = {
        domain: `.${domainParts.join('.')}`
      }
      setCookie('language',lang,options)
    } else {
      setCookie('language',lang)
    }

它现在正在获取并保存相同的域,即.dev.example.com

我希望它可以帮助某人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。