2013-03-21 2 views
1

couchapp을 쓰고 있는데 couchapp.jquery.js 라이브러리를 사용하고 있습니다.couchdb 세션과 IE8

ie8을 사용하여 사이트에 로그인하면 성공적인 로그인 (ok 및 login id 반환)을 얻을 수 있지만 세션을 쿼리 할 때 null 인 userCtx.name을 얻습니다. did not는 일어난다).

탐색기가 로그인 쿠키를 보관하지 않는 것처럼 보일 수 있습니다. 누구든지 이것에 대한 정보가 있습니까? J Chris의 couchLogin.js 라이브러리를 사용해 보았고 동일한 문제가있는 로그인 스크립트를 작성했습니다.

세션 코드는 다음과 같습니다 IE에서

$.couch.session({ 
    success: function(data) { 
     console.log(JSON.stringify(data)); 
    } 
}); 

응답 : 파이어 폭스/크롬에서

{"ok":true,"userCtx":{"name":null,"roles":[]},"info":{"authentication_db":"_users","authentication_handlers":["oauth","cookie","default"]}} 

응답 :

{"ok":true,"userCtx":{"name":"user1","roles":[]},"info":{"authentication_db":"_users","authentication_handlers":["oauth","cookie","default"],"authenticated":"cookie"}} 
+0

jquery의 어떤 버전을 사용하고 있습니까? 오류가 있는지 브라우저 콘솔에서 확인 했습니까? – SDC

+0

답변 해 주셔서 감사합니다. 콘솔에 오류가 없습니다. 응답을 기록하고 코드를 실행하면 사용자가 로그 아웃되었다고 생각합니다. JQuery 1.9.1 (jquery-migrate-1.1.1)을 사용하고 있습니다. 또한 jQuery-1.8.3을 사용해 보았습니다. (질문에 대한 응답과 응답을 추가했습니다.) – ddouglascarr

답변

0

내가 jquery.couch을 편집하여이 문제를 해결 한이. js 및 cache 추가 : 세션 함수에서 ajax 호출에 false.

session: function(options) { 
    options = options || {}; 
    $.ajax({ 
    cache: false, //disable caching for IE 
    type: "GET", url: this.urlPrefix + "/_session", 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader('Accept', 'application/json'); 
    }, 
    complete: function(req) { 
     var resp = $.parseJSON(req.responseText); 
     if (req.status == 200) { 
     if (options.success) options.success(resp); 
     } else if (options.error) { 
     options.error(req.status, resp.error, resp.reason); 
     } else { 
     throw "An error occurred getting session info: " + resp.reason; 
     } 
    } 
    }); 
} 
+0

안녕하세요. 비슷한 문제가 있습니다. . 당신이 적용한 해결책도 효과가 있다고 생각합니까? 'jquery.couch.js'의 소스는 정확히 어디입니까? – blaineh

+0

방금 ​​시도했지만 아무런 효과가 없었습니다. 아직 Null 이름을 얻고 있습니다. – blaineh

+0

또한 Chrome에서이 문제를 겪고 있습니다. 특히 브라우저 문제가 아닌 것으로 의심됩니다. 특히 Chrome에 아무런 문제가 없었기 때문에. – blaineh