Ionic PouchDB 为远程 CouchDB 提供 CORS 错误

Ionic PouchDB gives CORS error for remote CouchDB

我从我的 ionic 服务控制台收到此错误。

733291 error PouchDB error: the remote database does not seem to have CORS enabled. To fix this, please enable CORS: http:// pouchdb .com/errors.html#no_access_control_allow_origin_header

我按照 this guide 在桥接的 Debian7.8 virtualbox 客户机上安装了 couchDB,因为 apt-get couchDB 是 1.2 版,而且我读到 CORS 在 1.2 中无法正常工作。

这是 ionic/pouchDB 输出和 http headers 给出问题的屏幕截图。 https://www.dropbox.com/s/vok8rih830tsodq/cors.png?dl=0

在我的 index.html 中,就在我的 app.js 之前,我有

<script src="lib/pouchdb/dist/pouchdb.min.js"></script>

在app.js中,我有

var localDB = new PouchDB("todos");
var remoteDB = "http://admin:mysecretpassword@192.168.1.4:5984/todos";

...

app.run(function($ionicPlatform) {
    $ionicPlatform.ready(function() {
    ...
    localDB.sync(remoteDB,{live:true});

我使用客户端的 monsur cors-api 验证了远程 CORS 正在工作。

我在使用 PouchDB 4.01 和 Cloudant(托管 CouchDB)时遇到了完全相同的问题。在 Cloudant 上启用了 CORS,此错误在一天中随机发生多次。我在 Cloudant 知识渊博的技术支持上花了将近 2 个小时,他们确认这是一个 PouchDB 错误(错误?),而不是 CouchDB 服务器上的问题。

是的,这是我在 4.0.1 中引入的错误。错误在于它会在一切正常时发出警告。我试图帮助 运行 陷入 CORS 错误并且不明白他们所看到的是什么的人,但我最终让很多收到虚假警告但不明白原因的人感到困惑。 (这与无法区分 CORS 错误和正常 HTTP 超时有关。)

无论如何,如果您升级到 4.0.2+,警告就会消失。