2010-05-18 3 views
2

내 애플리케이션에서/iframe이 요청되면 쿠키를 만들고 iframe.html 파일을 제공합니다. html 파일에서 $ (document) .ready에 호출되고 쿠키에서 sid를 전달해야하는 사용자 데이터 (/ user)를 요청하기 위해 Javascript Ajax 호출을 사용합니다 (따라서 호출이 인증되었음을 알고 있습니다).Javascript ajax GET 호출에 초기 페이지로드시 쿠키 -sid가 포함되지 않습니다.

문제는 처음/iframe이 요청 될 때 Ajax get call과 함께 쿠키 sid가 전달되지 않습니다 (아직 쿠키가없는 경우). 다시로드 한 후에는 쿠키 호출이/user 호출과 함께 전달됩니다.

누구나 초기로드를 수정하는 데 대한 제안 사항이 있습니까?

브라우저가 쿠키를 받고 저장 한 다음 새 페이지가 요청 될 때마다 웹 사이트로 다시 보냅니다. 그러나 초기 Ajax 호출도 계산됩니까? 기본적으로

+0

리디렉션을 사용하여 해결. – Beatlevic

답변

1

는 같은 쿠키 및 HTTP 인증 정보와 같은 "자격 증명" XMLHttpRequest의를 사용하는 요청 크로스 사이트에 전송되지 않습니다. 이들을 보내려면 XMLHttpRequest 객체의 withCredentials 속성을 설정해야합니다.

http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/을 참조하십시오.

var request = new XMLHttpRequest(); 
var url = 'http://bar.other/resources/credentialed-content/'; 
function callOtherDomain(){ 
    if(request) 
    { 
    request.open('GET', url, true); 
    request.withCredentials = "true"; 
    request.onreadystatechange = handler; 
    request.send(); 
    } 
관련 문제