couchdb会话和IE8

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(

我正在编写一个couchapp,它使用coach.jquery.js库

当我使用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"}}

我通过编辑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上没有任何问题。