3

CouchDBからデータをプルするコードを使用して、オフラインストレージ用にCouchDBからPouchDBにデータを複製しようとしています。

db.replicate.from('http://test.iriscouch.com/todo','idb://todo', function (err, changes) {
if (err) {
    console.log(err);
}
else {
    console.log(changes);
}});
$scope.loadTodos(response.rows);

これらのエラーが発生します:

  • リソースのロードに失敗しました:サーバーはステータス405(メソッドは許可されていません)で応答しました
  • XMLHttpRequestはhttp://test.iriscouch.com/todo/をロードできません。Origin nullは、Access-Control-Allow-Originでは許可されていません。
  • Uncaught TypeError:未定義のメソッド'id'を呼び出すことができません

私が正しくやっていないことはありますか?

4

1 に答える 1

4

PouchDBがCouchDBと通信するには、同じドメインで実行されているか、PouchとCouchの間にCORSプロキシをインストールする必要があります。これは、ブラウザーによって適用される同一生成元ポリシーによるものです。CouchDBの次のリリースでうまくいけばこれをネイティブにサポートしますが、それまでの間、実稼働サイトでは、nginxを使用してポーチとカウチを同じドメインから実行するのが最も簡単だと思います。

于 2012-10-04T15:35:12.233 に答える