CouchDB列表“;访问列表时出错:无效JSON“;错误

CouchDB列表“;访问列表时出错:无效JSON“;错误,couchdb,Couchdb,我正在尝试从JavaScript调用CouchDB列表 我的jQuery调用是: var listItems = $.couch.db('foo').list('foo/barList', 'foo/barView'); 如果我在FireBug控制台中测试这个,当我在一个加载了jquery.coach.js的页面上(比如Futon)时,它会返回我想要的结果(几个标记,并填充了相应的数据) 但是,当我从代码中调用此函数时,我得到了错误: An error occured accessing t

我正在尝试从JavaScript调用CouchDB列表

我的jQuery调用是:

var listItems = $.couch.db('foo').list('foo/barList', 'foo/barView'); 
如果我在FireBug控制台中测试这个,当我在一个加载了jquery.coach.js的页面上(比如Futon)时,它会返回我想要的结果(几个
标记,并填充了相应的数据)

但是,当我从代码中调用此函数时,我得到了错误:

An error occured accessing the list: Invalid JSON: [the html]
。。。其中
[html]
是我想要在脚本中操作的html。我不明白为什么会出现JSON错误——我以为列表的目的是返回HTML。有没有办法强迫它将我的html返回给我

另外,我的列表函数包括以下内容,所以我不确定为什么这不起作用

    start({
      "headers": {
      "Content-Type": "text/html"
      }
     });
根据这是一个公认的错误,它已经被修补。然而,在对Jan Lehnardt在上述页面上推荐的jquery.coach.js进行更改之后,我不得不进一步做一件事

上面的页面建议在jquery.coach.js中进行以下更改:

- var resp = httpData(req, "json");
+ var resp = httpData(req, dataType); 
出于某种原因,这对我来说不起作用,但当我用以下内容替换它时,它起了作用。理论上,可以在下面为不同类型的内容类型添加处理程序

var cType = req.getResponseHeader('Content-Type');
switch(cType) {
    case 'text/html':
        var resp = req.responseText;
        break;
    default:  
        var resp = $.parseJSON(req.responseText);
        break;
    }
如果我遗漏了什么,我欢迎关于如何更有效地做到这一点的建议,但这对我来说是可行的