【问题标题】:PouchDB/CouchDB Replication Fails with Method Not AllowedPouchDB/CouchDB 复制失败,方法不允许
【发布时间】:2015-01-19 22:44:26
【问题描述】:

试图让 www.server1.com 使用 PouchDB 与安装在 www.server2.com 上的 CouchDB 通信。尝试复制数据时,出现以下错误:

error: true
message: "Database encountered an unknown error"
name: "unknown_error"
status: 405
statusText: "Method Not Allowed"

来自服务器:

$ curl -X GET http://admin:secret@127.0.0.1:5984/_config/cors
{"credentials":"false","origins":"*","methods":"GET,POST,PUT,DELETE,OPTIONS",
"headers":"accept,authorization,content-type,origin,X-Couch-Id,X-Couch-Rev"}

在 JavaScript 中:

var localDB, remoteDB, allSynced = null; 

function initializePouch(){
  localDB = new PouchDB('databaseone');
  remoteDB = new PouchDB('http://admin:secret@<remote ip>:5984/databaseone');

  localDB.info().then(function (info) {
    console.log('Get DB info', info);
  });

  retryReplication();
}

function retryReplication() {
  localDB.sync(remoteDB, {live: true}).on('change', function (change) {
    console.log('Replication done.');
  }).on('error', function (err) {
    console.log('error while replicating');
    console.log(err);
    if( !allSynced ) {
      setTimeout(retryReplication, 30000);
    }
  });
}
initializePouch();

这是控制台的内容:

start.html:229 Get DB info Object {doc_count: 0, update_seq: 0, db_name: "database",
auto_compaction: false}

我尝试了使用和不使用 admin:secret,但每次都失败了。 Apache CouchDB 1.6.1

有什么想法吗?

【问题讨论】:

    标签: javascript couchdb cors pouchdb


    【解决方案1】:

    这是一个 CORS 错误。如果我不得不猜测,我会说您需要在您的服务器上将credentials 设置为true。如果您不确定,只需运行 add-cors-to-couchdb 脚本,然后尝试。

    【讨论】:

    • 我确实尝试运行 add-cors-to-couchdb 但它似乎没有做任何事情。这是我当前的 local.ini 配置(我用 couchdb -c 确认它是列表中的最后一个)。 "httpd":{ "enable_cors":"true", }, "cors":{ "credentials":"true", "headers":"accept,authorization,content-type,origin,X-Couch-Id,X -Couch-Rev", "methods":"GET,POST,PUT,DELETE,OPTIONS,HEAD" },
    • 通过盒子上的 sshing,我可以得到工作请求。他们需要认证。在我当地,我尝试了这个,但我无法到达盒子。 curl -X GET admin:secret@<ip 地址>:5984/_config/cors
    • 没关系,服务器上打开的端口是一个该死的问题。你的 cors 想法仍然很好,如果我打开了端口,它一定会奏效:) 谢谢!
    猜你喜欢
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 2013-06-07
    • 2014-12-09
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    相关资源
    最近更新 更多