同步PouchDB和Couchbase Sync Gateway - CORS错误

5
我需要帮助将PouchDB与Couchbase Sync Gateway同步。

我一直收到指向CORS问题的以下错误,但是我已根据Couchbase Sync Gateway的文档配置了CORS。

XMLHttpRequest cannot load http://localhost:4985/test-database/.
No 'Access-Control-Allow-Origin'header is present on the requested
resource. Origin 'http://localhost:3000' is therefore not 
allowed access.

根据CSG文档,我尝试使用以下配置文件:

http://developer.couchbase.com/documentation/mobile/1.2/develop/guides/sync-gateway/configuring-sync-gateway/config-properties/index.html

{
  "log": ["HTTP+"],
  "CORS": {
    "origin":["http://localhost:3000"],
    "loginOrigin":["http://localhost:3000"],
    "headers":["Content-Type"],
    "maxAge": 1728000
  },
  "databases": {
    "test-database": {
      "server": "walrus:",
      "users": { "GUEST": {"disabled": false, "admin_channels": ["*"] } }
    }
  }
}

我也尝试了Couchbase博客中的其他配置文件,但它们都不起作用!非常感谢您提供的任何帮助!


看起来唯一的区别是端口号8k与3k...您能否使用curl/postman调用http://localhost:3000 - 看看结果中是否有cors头?如果有-问题就出在PouchDB上。另一种情况是您的配置被忽略了。我知道重新启动/重做是愚蠢的建议,或者您可能已经这样做了。但以防万一-您能确认一下吗? :) - Michał Zaborowski
2个回答

5

看起来你正在尝试访问Sync Gateway管理员端口,据我所知,该端口不支持CORS。你是否尝试过访问公共端口(4984)?


那就是问题所在。谢谢你的帮助! - Corey Quillen
我的问题是我编辑了错误的sync_gateway.json文件(是我的备份副本;) - f01

-1

这是因为您需要在CouchDB上启用CORS。否则,如果脚本从不同的源(协议(例如http://,https://),域和端口号)提供,则只能访问服务器数据库。

您可以使用curl或Futon Web界面在CouchDB中启用CORS,但我们通过创建一个名为add-cors-to-couchdb的Node脚本来为您节省时间。只需运行:

npm install -g add-cors-to-couchdb
add-cors-to-couchdb

更多信息,请参考链接
https://pouchdb.com/errors.html#no_access_control_allow_origin_header


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接