CouchDB列表“;访问列表时出错:无效JSON“;错误
我正在尝试从JavaScript调用CouchDB列表 我的jQuery调用是: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
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;
}
如果我遗漏了什么,我欢迎关于如何更有效地做到这一点的建议,但这对我来说是可行的