我在做一个web应用程序,并且我已经在用户可以选择更改应用程序语言的选项中,例如,从en-US到ja,我使用i18next。我所做的是将用户的首选语言写入cookie,重新加载页面,然后阅读用用户首选lang创建的cookie。但它的工作原理是因为它似乎每次重新加载页面时,我创建的cookie都会被删除,因此它会恢复为默认的lang。如何在不删除cookie的情况下重新加载页面
问题是有没有办法重新加载页面而不删除我所做的cookie?
我在做一个web应用程序,并且我已经在用户可以选择更改应用程序语言的选项中,例如,从en-US到ja,我使用i18next。我所做的是将用户的首选语言写入cookie,重新加载页面,然后阅读用用户首选lang创建的cookie。但它的工作原理是因为它似乎每次重新加载页面时,我创建的cookie都会被删除,因此它会恢复为默认的lang。如何在不删除cookie的情况下重新加载页面
问题是有没有办法重新加载页面而不删除我所做的cookie?
尝试在Cookie上设置到期日期。下面的代码将在未来一年内完成。
a = new Date(new Date().getTime() +1000*60*60*24*365);
document.cookie = 'mycookie=somevalue; expires='+a.toGMTString()+';';
请给它一个镜头,并再次检查resources
标签,看它是否已经改变。
Here是关于cookie语法和选项的一些信息。
这可能发生在开发时,一旦你部署应用程序,它可能不会发生。
请将该应用程序部署到本地IIS并测试它是否面临同样的问题。
也希望您添加cookie的到期时间。它的一些东西像下面
HttpCookie aCookie = new HttpCookie("SiteLanguage");
aCookie.Value = "en-US";
aCookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(aCookie);
你可能会删除/某处清空Cookie或不叫它正确...请上传您是否尝试过的代码... – webeno
你设置一个有效期?您能否在'resources'选项卡中检查浏览器的开发人员工具,并查明您的Cookie的到期日期是否设置为'session',而不是将来的适当日期。 – Jorg
@Jorg是它被设置为会话。为什么?这有什么问题? –