2017-05-05 4 views
0

저는 학생입니다 (나는 학생입니다). 자바 스크립트 위치 정보 API를 통해 발견 된 사용자 위치를 저장하는 쿠키를 만들려고합니다. 그러나 쿠키는 크롬에서는 완벽하게 작동하지만 사파리 또는 Firefox에서는 완벽하게 작동하지 않습니다. 나는 검사관을 들여다 보았다. 그리고 쿠키는 크롬을 위해 거기에 있었다. 쿠키 코드는 다음과 같습니다. 나머지 코드는 루비로 작성되었습니다. 쿠키의 요점은 내가 사용자에게 컨트롤러의 최근 위치를 알릴 수 있다는 것입니다.자바 스크립트/레일스 쿠키가 사파리에서는 저장되지 않지만 크롬에서는 작동합니다.

<%if @lat_lng.nil? %> 

<script> 
getGeoLocation(); 

function getGeoLocation() { 
navigator.geolocation.getCurrentPosition(setGeoCookie); 
} 

function setGeoCookie(position) { 
    var expiration = new Date(); 
    expiration.setDate(expiration.getDate()+1); 
    var cookie_val = position.coords.latitude + "|" + position.coords.longitude; 
    document.cookie = "lat_lng=" + escape(cookie_val); expires= 'expiration.toGMTString()'; 
} 
</script> 
<% end %> 

쿠키는 내 응용 프로그램 컨트롤러에 정의되어 @lat_lng = cookies[:lat_lng]

내가 정말 할 수있는 모든 도움을 주셔서 감사합니다! 당신이 쿠키를 설정하는 경우

답변

0

, 다음과 같은 형식이어야합니다 : 귀하의 경우

document.cookie = "some=value; expires=Mon, 1 Jan 2000 12:59:59 GMT"; 

, 당신은 단순히 자바 스크립트 변수를 정의하고 있습니다. 변경하려면 다음으로 변경하십시오.

PS로 변경하십시오. 그러나 expires 부분은 선택 사항이며 정상적으로 작동해야합니다. 어쩌면 사파리와 FF가 보안상의 이유로 그것을 요구할 수 있습니까? 인터넷 검색을 시도하십시오.

관련 문제