[英]Accessing Cloudant database with jQuery
我正在尝试使用jQuery
和jQuery.couch.sj
连接到Cloudant上的CouchDB
但是,我甚至无法获得有关我的数据库的最基本信息。 例如,以下代码不会向控制台打印任何内容。
码
<script>
$.couch.urlPrefix ="https://acharya.cloudant.com";
$.couch.info({
success: function(data) {
console.log(data);
}
});
</script>
如果我输入
var db= $.couch.db("toxtweet");
console.debug(db);
看到我的一个CouchDB的东西,我得到:
Object { name="toxtweet",uri="https://acharya.cloudant.com/toxtweet/", compact=function(),
more...}
这是正确的URI。 那么,我如何获得“toxtweet”数据库中的文档数量? 尝试该示例不起作用。
更新如果我在Chrome中查看该页面而不是Firefox,我会看到以下错误。
XMLHttpRequest cannot load https://acharya.cloudant.com/. Origin http://tox.sinaiem.org is not
allowed by Access-Control-Allow-Origin.
我认为Cloudant是一个绕过同源策略的CouchApp。
我没有使用jquery来访问Cloudant,但我希望你必须先登录某个地方,除非你以某种方式公开你的数据库。
您是否在Chrome或Firefox中检查了jquery.couch发送和接收的https请求和响应?
要获取文档数,通常会有一个带有reduce方法的视图,如下所示:
// map
function(doc) {
emit(doc.id, 1);
}
// reduce
function(keys, values, rereduce) {
return sum(values);
}
有关更多信息,请参阅此处CouchDB等效的SQL COUNT(*)聚合函数是什么?
在jquery.couch中执行等效请求之前,我建议您在尝试示例时使用Futon
更新
您是否尝试过JSONP来解决跨域问题? 请看: http : //support.cloudant.com/customer/portal/articles/359321-how-do-i-read-and-write-to-my-cloudant-database-from-the-browser-
CouchApp的/ Cloudant不绕过相同的原始政策。 如果你在Cloudant上有CouchApp,你可以在你的域下访问它(例如https://acharya.cloudant.com/DB_NAME/_design/DESIGN/index.html ),如果你想在另一个域上使用它,你需要反向代理人AndyD建议。
CouchDB wiki有两个很好的运行,使用HTTPD或Nginx作为反向代理,两者都应该在针对Cloudant托管的数据库运行时应用。
HTH
西蒙
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.