2015-01-16 4 views
0

www.server1.com에서 PouchDB를 사용하여 www.server2.com에 설치된 CouchDB와 통신하려고합니다. 서버에서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"} 

그리고 자바 스크립트

가 : 여기
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} 

시도해 보았습니다. admin : secret이 있거나 없는데 매번 실패했습니다. Apache CouchDB 1.6.1

아이디어가 있으십니까?

답변

1

이것은 CORS 오류입니다. 추측해야한다면, 서버에 credentialstrue으로 설정해야한다고 말하고 싶습니다. 확실하지 않은 경우 add-cors-to-couchdb 스크립트를 실행하고 그 후에 시도하십시오.

+0

나는 add-cors-to-couchdb를 실행하려고 시도했지만 아무 것도하지 않는 것 같습니다. 여기에 현재 local.ini 설정이 있습니다 (couchdb -c를 ​​사용하면 목록의 마지막 부분입니다). "아파치": { "enable_cors": "true"로, }, "고르": { "자격 증명": "true"로, "헤더": "동의, 권한 부여, 콘텐츠 유형, 원본, X-Couch-Id, X-Couch-Rev ", "방법 ":"가져 오기, POST, 붙여 넣기, 삭제, 옵션, 머리글 ", – Vallieres

+0

상자에 sshing부터 작업 요청을받을 수 있습니다. 그리고 그들은 인증을 요구합니다. 내 지역 출신이므로이 상자를 사용할 수 없습니다. curl -X GET http : // admin : secret @ : 5984/_config/cors – Vallieres

+0

서버에서 열린 포트는 문제가되지 않았습니다. 당신의 코르 생각은 여전히 ​​좋았고 포트가 열리면 작동했을 것입니다 :) 감사합니다! – Vallieres

관련 문제