由于网址不同,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

我希望它可以帮助某人。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...