2015-01-16 7 views
0

Попытка получить доступ к веб-узлу www.cerver1.com на CouchDB, установленном на www.server2.com, с использованием PouchDB. При попытке воспроизвести данные, я получаю следующее сообщение об ошибке:Ошибка репликации PouchDB/CouchDB с недопустимым методом

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

С сервера:

$ curl -X GET http://admin:[email protected]: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:[email protected]<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} 

Я пробовал с и без администратора: секретный, но с ошибкой каждый раз. Apache CouchDB 1.6.1

Есть идеи?

ответ

1

Это ошибка CORS. Если бы я должен был догадаться, я бы сказал, что вам нужно установить credentials на true на ваш сервер. Если вы никогда не знаете, просто запустите сценарий add-cors-to-couchdb и попробуйте после этого.

+0

Я попытался запустить add-cors-to-couchdb, и он ничего не делает. Вот моя текущая конфигурация local.ini (я подтвердил с помощью couchdb -c, что это последний в списке). "HTTPD": { "enable_cors": "Верно", }, "CORS": { "Полномочия": "Верно", "заголовки": "принять, разрешение, тип контента, происхождения, X-Couch-Id, X-Couch-Rev ", « Методы »:« GET, POST, PUT, DELETE, OPTIONS, HEAD » }, – Vallieres

+0

От sshing на ящике я могу получить запрос на работу. И они требуют аутентификации. Из моего локального я пробую это, и я не могу добраться до коробки. curl -X GET http: // admin: secret @: 5984/_config/cors – Vallieres

+0

Nevermind, это была проклятая проблема с портами, открытыми на сервере. Идея вашего корса все еще была хорошей и, должно быть, сработала, если бы я открыл порты :) Спасибо! – Vallieres

Смежные вопросы