524 响应没有 CORS headers
524 response has no CORS headers
我有一个 Couch/Pouch 应用程序似乎可以正常工作,但遇到奇怪的延迟并在浏览器日志中填满 CORS 错误。 CORS 错误仅发生在超时的 GET 上,因为它们的响应不提供 CORS headers.
使用浏览器开发工具,我可以看到许多成功的轮询请求,如下所示:
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:
- 在 GET 请求之前加上一个 OPTIONS 请求
- 指定超时为 10 秒的长轮询提要
显然 的缺陷是 CouchDB 的 524 响应没有 CORS headers!
我有四个这样的 live: true, retry: true
复制器,所以我的浏览器日志每十秒显示四个 red-inked 错误。
我会 post 这是 CouchDB 存储库中的一个问题,但我想先在这里得到一些反馈;我很容易误解一些东西,
其他因素:
- 我在 GitHub 页面中托管客户端代码并通过 CloudFlare 提供服务。
- 从客户端访问 CouchDB 也通过 CloudFlare
- 在我的 VPS.
上,CouchDB 位于 NGinx 后面
如果我需要提供更多详细信息,请告诉我。
回答这个问题的功劳实际上应该归功于@sideshowbarker,因为他让我意识到错误不在 CouchDB 中,而是在我的 Cloudflare 设置中。
在这些设置中,我将我的 CouchDB 站点设置为使用 DNS and HTTP proxy (CDN)
(橙色云图标)模式,而不是 DNS only
(灰色云图标)。切换到 DNS only
并可能不必要地擦除缓存,在相当长的延迟(超过一个小时?)后解决了问题。
我有一个 Couch/Pouch 应用程序似乎可以正常工作,但遇到奇怪的延迟并在浏览器日志中填满 CORS 错误。 CORS 错误仅发生在超时的 GET 上,因为它们的响应不提供 CORS headers.
使用浏览器开发工具,我可以看到许多成功的轮询请求,如下所示:
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:
- 在 GET 请求之前加上一个 OPTIONS 请求
- 指定超时为 10 秒的长轮询提要
显然 的缺陷是 CouchDB 的 524 响应没有 CORS headers!
我有四个这样的 live: true, retry: true
复制器,所以我的浏览器日志每十秒显示四个 red-inked 错误。
我会 post 这是 CouchDB 存储库中的一个问题,但我想先在这里得到一些反馈;我很容易误解一些东西,
其他因素:
- 我在 GitHub 页面中托管客户端代码并通过 CloudFlare 提供服务。
- 从客户端访问 CouchDB 也通过 CloudFlare
- 在我的 VPS. 上,CouchDB 位于 NGinx 后面
如果我需要提供更多详细信息,请告诉我。
回答这个问题的功劳实际上应该归功于@sideshowbarker,因为他让我意识到错误不在 CouchDB 中,而是在我的 Cloudflare 设置中。
在这些设置中,我将我的 CouchDB 站点设置为使用 DNS and HTTP proxy (CDN)
(橙色云图标)模式,而不是 DNS only
(灰色云图标)。切换到 DNS only
并可能不必要地擦除缓存,在相当长的延迟(超过一个小时?)后解决了问题。