如何解决由于网址不同,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相同)
现在,当我切换到 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 举报,一经查实,本站将立刻删除。