繁体   English   中英

使用jQuery访问Cloudant数据库

[英]Accessing Cloudant database with jQuery

我正在尝试使用jQueryjQuery.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有两个很好的运行,使用HTTPDNginx作为反向代理,两者都应该在针对Cloudant托管的数据库运行时应用。

HTH

西蒙

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM