2015-01-13 2 views
1

safari/ios를 사용하여 장바구니에 상품을 넣었을 때 상품이 나타나지 않는다는 경고를 받았습니다. 장바구니 쿠키가 설정되지 않았습니다. 리디렉션 페이지에 의해 설정됩니다. 사파리가 쿠키를 설정하지 않고 리디렉션하지 않는 문제를 보았습니다. 그러나 리디렉션을 제거하면 여전히 설정되지 않습니다. 여기에 코드입니다 :Safari에서 쿠키가 설정되어 있지 않지만, 즉, ff, 크롬에서 작동합니다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> 
 
<script type="text/javascript">window.onload= function() { 
 
SetCookie('RORDERID','OECLICK*17180*39521',10); 
 
setTimeout("redir()",100);} 
 
function redir(){window.location = 'http://www.shopthethirdfloor.com/forward-to-ttf-cart.html';} 
 
function SetCookie(cookieName,cookieValue,nDays) {var today = new Date();var expire = new Date(); 
 
expire.setTime(today.getTime() + 3600000*24*nDays); 
 
document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();}</script> 
 
</head> 
 
<body><br>If you are not redirected to the shopping cart, <a href="http://www.THESITE.com/forward-to-ttf-cart.html">click here</a></body></html>

내가 어쩌면에서는 setTimeout이 작동 할 수 있도록 것이라고 생각하지만 REDIR에 대한 호출을 가지고가는 경우에() 여전히 쿠키를 설정하지 않습니다.

제안 사항?

추가 참고 : 나는 이것에 대해 포스팅을 발견하고,에 코드를 업데이트 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> 
 
<script type="text/javascript">window.onload= function() { 
 
setCookie2('RORDERID','OECLICK*17180*43',10,'','',''); 
 
//setTimeout("redir()",100); 
 
} 
 
function redir(){window.location = 'http://www.shopthethirdfloor.com/forward-to-ttf-cart.html';} 
 
function setCookie2 (name, value, nDays, path, domain, secure) {var today = new Date();var expires = new Date(); 
 
    expires.setTime(today.getTime() + 3600000*24*nDays); 
 
    var curCookie = name + "=" + encodeURIComponent(value) + (expires ? "; expires=" + expires.toGMTString() : "") + (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : ""); 
 
    document.cookie = curCookie;}</script> 
 
</head> 
 
<body><br>If you are not redirected to the shopping cart, <a href="http://www.thesitename.com/forward-to-ttf-cart.html">click here</a></body></html>

과 내 사이트에서 작동하지 않습니다 여전히 작동하지만. 이 코드는 내 사이트의 다른 도메인에있는 iframe에서 실행 중입니다. 이 사이트는 www.shopthethirdfloor.com입니다. 제품에 가서 제품을 선택하여 장바구니에 추가하면 사파리에 쿠키가 추가되지 않지만 다른 브라우저는 추가됩니다.

답변

1

오클라호마가 iframe 크로스 도메인에서 쿠키를 설정하지 않을 때 더 많은 파기와 시행 착오를 거친 후 문제가 발생했습니다. 나는 여기에 웹을 포함하여 여러 가지 제안을 시도했지만 관련성이 없거나 작동하지 않았다 (낡은 것). 나는 2 가지 옵션이 있다는 것을 알았다. 첫 번째, 액자 도메인을 내가 할 수있는 부모 윈도우 도메인의 하위 도메인으로 변경하고 싶지 않지만 싫은 링크와 지불 게이트웨이를 변경해야합니다. 두 번째는 여러 단계를 거쳤지 만 우수한 결과는 다음과 같습니다 : 쿠키를 설정하려고하는 페이지가 사파리 브라우저인지 확인합니다. 사파리 브라우저 인 경우에는 동일한 도메인의 PHP 스크립트로 창 위치를 변경합니다. 브라우저가 get 변수에 쿠키를 전달하면 iframe 서버에서 창 위치를 asp 스크립트로 변경하여 쿠키 설정 코드가있는 쿠키 정보를 보내고 쿠키를 설정 한 후 장바구니에 대한 페이지를로드합니다 . 여기에서 키는 쿠키를 부모 창에 설정하고 새 대상 페이지를로드해야하는 쿠키 설정 페이지를 가져 오는 것입니다.

몇 단계가 있지만 잘 작동합니다.

1

기본 사파리 설정이 쿠키는 쿠키의 저장을 가능하게하는 설정을 사용하도록 설정해야합니다 ... 그래서이 문제를 극복하기 위해 신뢰할 수있는 사이트에 대한 수있을 것입니다 사파리 브라우저에있는 쿠키의 저장을 달성하기 위해 HTML5 로컬 스토리지 개념을 사용하려고 HTML5 로컬 저장소 개념을 사용할 수 있습니다.

관련 문제