如何使用JavaScript/jQuery将新数据发布到CouchDB

scr*_*key 6 javascript jquery couchdb

下面的问题中找到了答案.

我需要在apache中设置一个反向代理,通过将以下行添加到我的虚拟主机中大约需要2分钟;
ProxyPass/couchdb/http:// dojo:5984 /
由于原始策略相同,您无法跨端口发布数据.我知道这适用于域而不是不同的端口,因此您设置了反向代理.


我想知道如何使用JavaScript或jQuery将数据发布到couchDB.

我跟着这个tut创建了一个数据库,我可以使用curl发布和获取数据,一切正常.我使用下面有卷曲的例子.

我也可以使用jQuery获取数据,但我不知道如何POST到CouchDB

curl -X GET http://127.0.0.1:5984/mycouchshop/_all_docs.
curl -X POST http://127.0.0.1:5984/mycouchshop/ -d @ person.json -H"Content-Type:application/json"

我可以使用jQuery获取和显示数据.下面的代码工作正常.

  $.ajax({
    url : 'http://couchdb:5984/mycouchshop/_design/peoples/_view/people',
    type : 'GET',
    dataType : "jsonp",
    success : function(json) {}
  });
Run Code Online (Sandbox Code Playgroud)

但是发布数据导致405方法不允许

  $.ajax({
    url : 'http://couchdb:5984/mycouchshop/',
    data : {"forename": "Bob", "surname": "McHamster", "type": "person"},
    contentType : "application/json", 
    type : 'POST',
    dataType : "json",
    success : function(resp) {}
  });
Run Code Online (Sandbox Code Playgroud)

Reg*_*man 3

同源安全策略

我不是 couchapp 专家,但我遇到了同样的问题。问题是您遇到了跨域限制,您的应用程序从一个端口提供服务,而 couchdb 在另一个端口上访问。来自couchapp.org

我从开始使用 CouchDB 编写 Ajax 应用程序的人们那里得到的一个常见问题是“当我尝试使用 jQuery 查询 CouchDB 时,它不起作用。” 通常情况下,他们的文件系统上有一个 index.html 文件,该文件正在尝试对 CouchDB 服务器进行 Ajax 调用。在我向他们解释同源安全策略后,他们开始理解这一点,这意味着 CouchDB 需要为他们的 HTML 提供服务(而不是直接从文件系统将其加载到浏览器中)。

因此,最简单的 CouchApp 只是一个 HTML 文件,直接从 CouchDB 提供服务,它使用 Ajax 从 CouchDB 加载和保存数据。

使用沙发应用程序

似乎所有应用程序文件都需要使用 couchapp (http://couchapp.org/page/index)“推送”到 couchdb 服务器。我在 Mac 上工作,所以我使用了独立可执行文件。安装 couchapp 的说明在那里

教程

当您了解 couchapp 的工作原理后,您可以使用本教程

下一步

我正在努力弄清楚它们......如果您发现任何好东西,请分享!祝你好运!

编辑:我刚刚找到这个教程