Tôi đã thiết lập một cơ sở dữ liệu CouchDB cục bộ và tôi muốn sao chép nó vào cơ sở dữ liệu PouchDB, sử dụng JavaScript trong một trang web chạy trên máy chủ cục bộ.Làm cách nào để sao chép từ CouchDB sang PouchDB?
Với mã dưới đây, tôi nhận được lỗi này:
Origin
http://localhost
is not allowed by Access-Control-Allow-Origin.
Với http://
khỏi REMOTE, tôi không nhận được một lỗi, nhưng không có tài liệu được trình bày như nhân rộng.
Nhìn vào cơ sở dữ liệu IndexedDB từ Chrome DevTools, tôi có thể thấy cơ sở dữ liệu đã được tạo (nhưng dường như không có tài liệu).
Chạy trong Chrome 29.0.1535.2 canary.
Tôi có thể thực hiện việc này cục bộ hay tôi cần thiết lập cơ sở dữ liệu CouchDB từ xa và bật CORS (theo số CouchDB docs)?
var REMOTE = 'http://127.0.0.1:5984/foo';
var LOCAL = 'idb://foo';
Pouch(LOCAL, function(error, pouchdb){
if (error) {
console.log("Error: ", error);
} else {
var db = pouchdb;
Pouch.replicate(REMOTE, LOCAL, function (error, changes) {
if (error) {
console.log('Error: ', error);
}
else {
console.log('Changes: ', changes);
db.allDocs({include_docs: true}, function(error, docs) {
console.log('Rows: ', docs.rows);
});
}});
}
});
Tôi có thể bật CORS cho máy chủ CouchDB trên máy chủ cục bộ không? Đã thử cho phép CORS từ Futon (httpd> cors thành true và cors> thông tin xác thực cả true và false) nhưng vẫn gặp lỗi: 'OPTIONS http://127.0.0.1:5984/presentations/ 405 (Phương thức không được phép) pouchdb-night. min.js: 1 TÙY CHỌN http://127.0.0.1:5984/presentations/ Xuất xứ http: // localhost không được Access-Control-Allow-Origin cho phép. pouchdb-nights.min.js: 1 XMLHttpRequest không thể tải http://127.0.0.1:5984/foo/. Không cho phép xuất xứ http: // localhost bằng Access-Control-Allow-Origin. localhost/node/foo /: 1 ... Object {status: 0} ' –
Nó không nên khác biệt trên localhost. Có thể thử khởi động lại Couch sau khi đặt 'httpd> enable_cors = true' trong cấu hình? – chesles
Cảm ơn @chesles - gợi ý tốt, nhưng đã thử khởi động lại CouchDB (và máy đang chạy!) Nhưng vẫn nhận được lỗi xuất xứ chéo: 'XMLHttpRequest không thể tải http://127.0.0.1:5984/foo/. Không cho phép xuất xứ http: // localhost bằng Access-Control-Allow-Origin.' Tôi đã kiểm tra trong Futon khi khởi động lại: httpd> enable_cors là true –