2

我是 Couch DB 的新手。我在大学服务器上的主文件夹上安装了 CouchDB,看起来像......

http://servername.com/home/users/roby

Db 在端口 1234 上运行,并且运行良好。我能够使用我机器上的 SSH 隧道使用 Java 的 Couch4J 驱动程序填充数据库。

我正在开发一个需要存储在数据库中的数据的 Web 应用程序。假设我有一个 index.html 文件位于

http://servername.com/home/users/roby/public_html/index.html

被翻译成

http://servername.com/~roby/index.html

发出一个简单的请求时,我遇到了奇怪的错误,例如

XMLHttpRequest cannot load http://xxxxxxx:1234/. 
Origin http://servername.com is not allowed by Access-Control-Allow-Origin.

我用来尝试从数据库获得一些响应的代码如下

$.couch.urlPrefix = "http://xxxxxxx:1234";

$.couch.info({
    success: function(data) {
        console.log(data);
    }
});

任何帮助表示赞赏。

谢谢。

R M

4

1 回答 1

3

你有三个选择。

  1. 您可以使用 Nginx 代理 CouchDB,这样您就可以从与 CouchDB 相同的端口提供 html。
  2. 您可以通过将其附加到文档来从 CouchDB 本身提供 html(最简单的方法是使用 CouchApp 或类似方法)。
  3. 最后,您可以在 CouchDB 中启用 jsonp 响应并将calback参数添加到查询中,jQuery 支持 jsonp 响应。

如果您无法更改服务器配置,则选项 1 和 3 不可用。至于第二个,您可以在最低级别使用 put 请求添加附件:

curl -X PUT http://xxxx:1234/dbname/docname/index.html --data-binary @index.html -H "Content-Type: text/html"

您需要在每次更改后上传文件,因此手动操作并不实际。有诸如CouchApp或Kenso 之的工具可以帮助您。

于 2012-04-19T16:23:46.297 回答