В ответе 524 нет заголовков CORS - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть приложение 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 секунд

Дефект, очевидно , это то, что Ответ 524 CouchDB не имеет заголовков CORS!

У меня четыре таких live: true, retry: true репликатора, поэтому в журналах моего браузера отображаются четыре ошибки с красными черниламикаждые десять секунд.

Я бы опубликовал это как проблему в репозитории CouchDB, но сначала я хотел бы получить некоторые отзывы;Я мог легко что-то неправильно понять,

Другие факторы:

  1. Я размещаю код клиента на страницах GitHub и обслуживаю его через CloudFlare.
  2. Доступ к CouchDB от клиентовтакже проходит через CloudFlare
  3. CouchDB стоит за NGinx на моем VPS.

Дайте мне знать, если есть дополнительные подробности, которые я должен предоставить, пожалуйста.

1 Ответ

1 голос
/ 04 апреля 2019

Кредит за ответ на этот вопрос на самом деле должен идти на @sideshowbarker, поскольку он заставил меня понять, что ошибка была не в CouchDB, а в моих настройках Cloudflare.

В этих настройках мой сайт CouchDB был настроен для использованияDNS and HTTP proxy (CDN) (оранжевый значок облака), а не DNS only (серый значок облака).Переключение на DNS only и, возможно, излишнее удаление кеша, решило проблему после значительной задержки (более часа?).

...