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

我在下面找到了答案。

我需要在apache中设置一个反向代理,花费大约2分钟时间,向我的虚拟主机添加以下行;
ProxyPass / couchdb / http:// dojo:5984 /
由于相同的源策略,您不能在端口之间发布数据。 我知道这适用于域而不是不同的端口,所以你建立了一个反向代理。


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

我遵循这个啧啧,创建了一个数据库,我能够发布并使用curl获取数据,并且它一切正常。 下面有我使用的卷曲示例。

我也能够使用jQuery获取数据,但我不知道如何发布到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) {}
  });

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

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

相同的来源安全政策

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

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

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

使用couchapp

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

教程

当你了解couchapp的工作方式时,你可以使用这个教程

下一步

我试图找出它们......如果你发现任何好东西,请分享! 祝你好运!

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


解决跨源资源共享( CORS )问题的另一个解决方案是更改本地CouchDB安装的一些设置。

只需按照此问题上发布的答案:Couchdb cors问题

链接地址: http://www.djcxy.com/p/48531.html

上一篇: How do I POST new data to CouchDB using JavaScript/jQuery

下一篇: CouchDB: Workflow for creating documents?