couchdb会话和IE8
我正在编写一个couchapp,它使用coach.jquery.js库 当我使用ie8登录到站点时,我得到了一个成功的登录(它返回ok和一个登录id),但是当我查询会话时,我得到了一个null的userCtx.name(就像没有登录一样) 浏览器似乎不会阻止登录时使用cookie。有人知道这方面的信息吗? 我尝试了J Chris的couchLogin.js库,并编写了自己的登录脚本,但遇到了同样的问题 会话代码为:couchdb会话和IE8,couchdb,couchapp,Couchdb,Couchapp,我正在编写一个couchapp,它使用coach.jquery.js库 当我使用ie8登录到站点时,我得到了一个成功的登录(它返回ok和一个登录id),但是当我查询会话时,我得到了一个null的userCtx.name(就像没有登录一样) 浏览器似乎不会阻止登录时使用cookie。有人知道这方面的信息吗? 我尝试了J Chris的couchLogin.js库,并编写了自己的登录脚本,但遇到了同样的问题 会话代码为: $.couch.session({ success: function(
$.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"}}
我通过编辑jquery.coach.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;
}
}
});
}
您使用的jquery版本是什么?您是否已检查浏览器控制台是否有任何错误?谢谢您的回复。控制台上没有错误。我让它记录响应,代码执行得很好,它只是认为用户已注销。我正在使用JQuery 1.9.1(与JQuery-migrate-1.1.1一起使用)。还尝试了jQuery-1.8.3。(我已经添加了电话和对问题的回答)嘿,我有一个类似的问题:。您认为您所应用的修复程序也会起作用吗?
jquery.coach.js
的源代码到底在哪里?我刚刚试过,没有任何效果。我仍然得到一个空名称。而且,我在Chrome上遇到了这个问题,所以我怀疑这是浏览器的问题,特别是因为你在Chrome上没有任何问题。