我在做一個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是它被設置爲會話。爲什麼?這有什麼問題? –