我有一个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:
显然的缺陷是 CouchDB的524响应没有CORS标头!
我有四个这样的live: true, retry: true
复制器,因此我的浏览器日志每十秒钟显示四个红色错误。
我会将其作为问题发布到CouchDB存储库中,但是我首先希望在这里获得一些反馈;我很容易误会某些东西,
其他因素:
请告诉我是否还有其他详细信息。
答案 0 :(得分:1)
回答这个问题的信用实际上应该到@sideshowbarker,因为他让我意识到错误不是在CouchDB中,而是在我的Cloudflare设置中。
在这些设置中,我将CouchDB网站设置为使用DNS and HTTP proxy (CDN)
(橙色云图标)模式,而不是DNS only
(灰色云图标)模式。切换到DNS only
并可能不必要地擦除高速缓存后,经过了相当长的延迟(一个多小时?)后,问题才得以解决。