我正在写一个使用couch.jquery.js库的couchapp。
当我使用ie8登录网站时,我获得了成功登录(它返回ok,登录ID),但是当我查询会话时,我得到一个null的userCtx.name(就像登录没有不会发生。)
似乎探险家不会保留登录cookie。有人有这方面的任何信息吗? 我已经尝试了J Chris的couchLogin.js库并编写了我自己的登录脚本,并遇到了同样的问题。
会话代码为:
$.couch.session({
success: function(data) {
console.log(JSON.stringify(data));
}
});
来自IE的回复:
{"ok":true,"userCtx":{"name":null,"roles":[]},"info":{"authentication_db":"_users","authentication_handlers":["oauth","cookie","default"]}}
来自Firefox / Chrome的回复:
{"ok":true,"userCtx":{"name":"user1","roles":[]},"info":{"authentication_db":"_users","authentication_handlers":["oauth","cookie","default"],"authenticated":"cookie"}}
答案 0 :(得分:0)
我通过编辑jquery.couch.js并在会话函数中将ajax调用添加到cache: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;
}
}
});
}