我正在做一个网络应用程序,并且我已经在用户可以选择更改应用程序语言的部分,例如。从 en-US 到 ja,我使用的是 i18next。我所做的是将用户的首选语言写入 cookie,重新加载页面,然后读取我使用用户首选语言创建的 cookie。但是它不起作用,因为似乎每次重新加载页面时,我创建的 cookie 都会被删除,因此它会恢复为默认语言。
问题是有没有办法在不删除我制作的 cookie 的情况下重新加载页面?
我正在做一个网络应用程序,并且我已经在用户可以选择更改应用程序语言的部分,例如。从 en-US 到 ja,我使用的是 i18next。我所做的是将用户的首选语言写入 cookie,重新加载页面,然后读取我使用用户首选语言创建的 cookie。但是它不起作用,因为似乎每次重新加载页面时,我创建的 cookie 都会被删除,因此它会恢复为默认语言。
问题是有没有办法在不删除我制作的 cookie 的情况下重新加载页面?
尝试在 cookie 上设置过期日期。下面的代码将其设置为未来一年。
a = new Date(new Date().getTime() +1000*60*60*24*365);
document.cookie = 'mycookie=somevalue; expires='+a.toGMTString()+';';
请试一试,然后resources
再次检查选项卡以查看它是否已更改。
以下是有关 cookie 语法和选项的一些信息。
这可能会在开发时发生,一旦您部署了应用程序,它可能不会发生。
请将应用程序部署到本地 IIS 并测试它是否会遇到同样的问题。
还希望您添加 cookie 的到期时间。它像下面的东西
HttpCookie aCookie = new HttpCookie("SiteLanguage");
aCookie.Value = "en-US";
aCookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(aCookie);