524个响应没有CORS标头

时间:2019-04-02 11:30:40

标签: cors couchdb cloudflare pouchdb

我有一个Couch / Pouch应用程序,该应用程序似乎可以正常运行,但会遇到奇怪的延迟,并在浏览器日志中填充CORS错误。 CORS错误仅在超时的GET上发生,因为它们的响应不提供CORS标头。

使用浏览器开发工具,我可以看到许多成功的轮询请求,如下所示:

GET https://couch.server/mydb/_changes
  ?style=all_docs
  &filter=_view
  &view=visible/person
  &since=369-69pI ...... bTC_376CZ
  &limit=100
               response 200

...还有这样的坏人...

OPTIONS https://couch.server/mydb/_changes
  ?style=all_docs
  &feed=longpoll
  &heartbeat=10000
  &filter=_view
  &view=visible/person
  &since=369-69pI ...... bTC_376CZ
  &limit=100
               response 200

GET https://couch.server/mydb/_changes
  ?style=all_docs
  &feed=longpoll
  &heartbeat=10000
  &filter=_view
  &view=visible/person
  &since=369-69pI ...... bTC_376CZ
  &limit=100
               response 524

因此,好的情况和坏的情况之间只有两个区别。在糟糕的情况下,PouchDB:

  1. 在GET请求之前使用OPTIONS请求
  2. 指定了10秒超时的longpoll提要

显然的缺陷是 CouchDB的524响应没有CORS标头!

我有四个这样的live: true, retry: true复制器,因此我的浏览器日志每十秒钟显示四个红色错误。

我会将其作为问题发布到CouchDB存储库中,但是我首先希望在这里获得一些反馈;我很容易误会某些东西,

其他因素:

  1. 我将客户端代码托管在GitHub页面中,并通过CloudFlare进行提供。
  2. 客户端对CouchDB的访问也通过CloudFlare进行
  3. CouchDB在我的VPS上位于NGinx后面。

请告诉我是否还有其他详细信息。

1 个答案:

答案 0 :(得分:1)

回答这个问题的信用实际上应该到@sideshowbarker,因为他让我意识到错误不是在CouchDB中,而是在我的Cloudflare设置中。

在这些设置中,我将CouchDB网站设置为使用DNS and HTTP proxy (CDN)(橙色云图标)模式,而不是DNS only(灰色云图标)模式。切换到DNS only并可能不必要地擦除高速缓存后,经过了相当长的延迟(一个多小时?)后,问题才得以解决。