Ошибка во время репликации PouchDB в CouchDB — разрешены только DELETE, GET, HEAD, POST

Я получаю сообщение об ошибке при попытке репликации из PouchDB (используя http://www.pouchvision.com/ ) в CouchDB (используя локальную установку).

Исследуя ошибку с помощью Fiddler, кажется, что во время репликации PouchDB вызывает

http://127.0.0.1:5984/targetdb/

используя метод «OPTIONS», и что CouchDB возвращает:

{
  "error": "method_not_allowed",
  "reason":"Only DELETE,GET,HEAD,POST allowed"
}

Я также использовал Fiddler для проверки репликации CouchDB в CouchDB, и в этом случае репликация делает 2 вызова на один и тот же URL-адрес с использованием методов «HEAD» и «GET», и все работает нормально.

Вопросы. У кого-нибудь еще была такая же проблема? Я делаю что-то неправильно? Или это ошибка в PouchDB (или в www.pouchvision.com)?


person green    schedule 31.05.2013    source источник
comment
Просматривая исходный код, я не могу найти, где PouchDB делает запрос OPTIONS. Вы используете последнюю версию PouchDB?   -  person garbados    schedule 31.05.2013
comment
@garbados спасибо за ваш комментарий. Я использую PouchVision. Я проверю, какую версию он использует.   -  person green    schedule 31.05.2013


Ответы (1)


Запрос OPTIONS исходит от вашего браузера, а не от PouchDB. Из Википедии:

спецификация предписывает браузерам «предварительно проверять» запрос, запрашивая поддерживаемые методы с сервера с заголовком запроса HTTP OPTIONS.

Ошибка, которую вы видите, обычно не является фатальной. Проверьте свою локальную базу данных, чтобы убедиться, что репликация действительно не удалась. Если вы видите ошибку только из запроса OPTIONS, возможно, репликация прошла без проблем.

Также убедитесь, что вы используете последнюю версию CouchDB (я полагаю, 1.3.x), так как она имеет встроенную поддержку CORS.

person jches    schedule 01.06.2013
comment
Спасибо - CORS по умолчанию отключен в CouchDB 1.3.0. Включение решило проблему. Ссылка: en.wikipedia.org/wiki/Cross-origin_resource_sharing - person green; 03.06.2013