【问题标题】:Syncing PouchDB and Couchbase Sync Gateway - CORS Error同步 PouchDB 和 Couchbase 同步网关 - CORS 错误
【发布时间】:2016-06-08 14:55:19
【问题描述】:

我需要帮助将 PouchDB 与 Couchbase 同步网关同步。

我不断收到以下指向 CORS 问题的错误,但我已根据他们的文档为 CORS 配置了 Couchbase 同步网关 (CSG)。

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 调用 localhost:3000 - 看看结果中是否有 cors 标头?如果是这样 - 问题出在 PouchDB 上。另一种情况是您的配置以某种方式被忽略了。我知道重新启动/重做是愚蠢的建议,或者也许你这样做了。但以防万一——你能确认一下吗? :)

标签: couchdb couchbase pouchdb couchbase-sync-gateway


【解决方案1】:

据我所知,您似乎正在尝试访问不支持 CORS 的同步网关管理端口。您是否尝试过针对公共端口(4984)?

【讨论】:

  • 这就是问题所在。感谢您的帮助!
  • 我的是我编辑了错误的sync_gateway.json(我的备份副本;)
【解决方案2】:

这是因为您需要在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2016-11-02
    相关资源
    最近更新 更多