2014-03-13 6 views
0

웹 앱을 운영하는 Im과 이미 사용자가 앱의 언어를 변경할 수있는 권한이있는 부분에 이미 있습니다. 예 : en-US에서 ja로, i18next를 사용하고 있습니다. 내가 한 일은 사용자가 선호하는 언어를 쿠키에 쓰고 페이지를 다시로드 한 다음 사용자가 선호하는 언어로 만든 쿠키를 읽는 것입니다. 그러나 그것은 페이지를 새로 고침 할 때마다 내가 만든 쿠키가 삭제되어 기본 lang으로 되돌아가는 것처럼 보이기 때문에 작동하지 않습니다.쿠키를 삭제하지 않고 페이지를 새로 고침하는 방법

내가 만든 쿠키를 삭제하지 않고 페이지를 다시로드하는 방법은 무엇입니까?

+0

다음은 PLS – webeno

+0

당신이 유효 기간을 설정하는 ... 당신이 시도 코드를 게시 ... 제대로 호출 아마/삭제 어딘가에 쿠키를 비우거나하지 않는 등 그 어떤 것을? 'resources' 탭에서 브라우저의 개발자 도구를 점검하고 미래의 적절한 날짜 대신 쿠키의 만료 날짜가'session'으로 설정되었는지 확인할 수 있습니까? – Jorg

+0

@Jorg 예. 세션으로 설정됩니다. 왜? 그 문제는 무엇입니까? –

답변

1

쿠키에 만료일을 설정해보십시오. 아래의 코드는 향후 1 년으로 설정합니다.

a = new Date(new Date().getTime() +1000*60*60*24*365); 
document.cookie = 'mycookie=somevalue; expires='+a.toGMTString()+';'; 

그것에게 기회를 제공하고 변경된 있는지 확인하기 위해 다시 resources 탭을 확인하시기 바랍니다.

Here은 쿠키 구문 및 옵션에 관한 정보입니다.

+0

이 작동합니다! 쿠키가 클라이언트 컴퓨터에 1 년 동안 머물러 있다고 걱정해야합니까? –

+0

왜 그런가? 즉, 쿠키를 삭제하지 않으면 언어 기본 설정을 읽을 수 있습니다. – Jorg

+0

이와 같은 큰 사이트의 recourses 탭을 주시하십시오. 너무 큰 유효 날짜와 함께 여러 쿠키를 설정합니다. – Jorg

0

개발 시간이 오래 걸릴 수도 있지만 앱을 배포 한 후에는 발생하지 않을 수 있습니다.

로컬 IIS에 앱을 배포하고 같은 문제에 직면 해 있는지 테스트하십시오.

쿠키에 만료 시간을 추가하시기 바랍니다.

HttpCookie aCookie = new HttpCookie("SiteLanguage"); 
aCookie.Value = "en-US"; 
aCookie.Expires = DateTime.Now.AddYears(1); 
Response.Cookies.Add(aCookie); 
관련 문제