Подтвердить что ты не робот

Как добавить cors в couchDB - Нет заголовка "Access-Control-Allow-Origin" присутствует на запрошенном ресурсе

Я пытаюсь создать html файл, который синхронизирует данные с pouchDb на couchDb.., но iam получает следующую ошибку в хром-консоли.

Uncaught TypeError: не может вызвать метод 'addEventListener' из null

ОПЦИИ http://localhost:5984/todos/ 405 (Метод не Разрешено)

ОПЦИИ http://localhost:5984/todos/ Нет заголовка "Access-Control-Allow-Origin" на запрошенный ресурс. Origin 'http://localhost:8080', следовательно, не допускается. XMLHttpRequest не может загрузить http://localhost:5984/todos/. Нет "Access-Control-Allow-Origin" заголовок присутствует на запрошенном ресурсе. Origin 'http://localhost:8080' поэтому не допускается доступ. ОПЦИИ http://localhost:5984/todos/ Нет заголовка "Access-Control-Allow-Origin" присутствует на запрошенном ресурсе. Origin 'http://localhost:8080' поэтому не допускается доступ. pouchdb-nightly.js: 3496 ОПЦИИ http://localhost:5984/todos/ Нет заголовка "Access-Control-Allow-Origin" на запрошенный ресурс. Origin 'http://localhost:8080' поэтому не допускается доступ. pouchdb-nightly.js: 3496 XMLHttpRequest не может загрузить http://localhost:5984/todos/. нет Заголовок заголовка Access-Control-Allow-Origin присутствует в запрошенном ресурс. Origin 'http://localhost:8080' поэтому не допускается доступ.

Я нашел способ избежать этой проблемы. Это я должен открыть chrome, используя следующую команду: cd C:\Program Files (x86)\Google\Chrome\Application Chrome.exe --disable-web-security. Но это не решило проблему. Я видел много подобных вопросов здесь. Но я не понял никакого ответа, так как я относительно новичок в этом поле.

4b9b3361

Ответ 1

От этой документации:

Чтобы включить поддержку CORS, вам необходимо установить опцию enable_cors = trueв разделе [httpd] local.ini и добавьте раздел [cors]содержащий параметр origins = *. Обратите внимание, что по умолчанию исходные данные отсутствуют. принято; вы должны либо использовать подстановочный знак, либо белый список.

[httpd]
enable_cors = true

[cors]
origins = *

Ответ 2

Принятый ответ не решает мою проблему. Что я сделал -

обновить local.ini(/место установки /CouchDB/etc/couchdb )

[httpd]
enable_cors = true

[cors]
origins = *
credentials = true
methods = GET, PUT, POST, HEAD, DELETE
headers = accept, authorization, content-type, origin, referer, x-csrf-token

Затем откройте CMD в режиме администратора и запустите -

net.exe stop "Apache CouchDB" && net.exe start "Apache CouchDB"

*** только для пользователей Windows

Ответ 3

Раздел CORS в couchdb:

credentials: true
headers: accept, authorization, content-type, origin, referer, cache-control, x-requested-with
methods: GET,PUT,POST,HEAD,DELETE
origins: *

Примечание x-requested-with

Ответ 4

Теперь есть инструмент, который добавит вам CORS для CouchDB:

npm install -g add-cors-to-couchdb
add-cors-to-couchdb

Дополнительная документация здесь: https://github.com/pouchdb/add-cors-to-couchdb

Ответ 5

Самый простой способ, который я нашел, - установить следующее:

npm install -g add-cors-to-couchdb

Затем запустите инструмент, то есть "add-cors-to-couchdb" из командной строки следующим образом:

add-cors-to-couchdb <you_url>:<port> -u <user_name> -p <your_password>

Обратите внимание на следующую ссылку для CouchDB как на ссылку CORS

Ответ 6

В сообщении @szydan, если ваш менеджер пакетов все еще обслуживает версию 1.2, которая не поддерживает CORS OPTIONS, вам необходимо установить ее из источника.

echo "deb http://binaries.erlang-solutions.com/debian `lsb_release -cs` contrib"  | tee /etc/apt/sources.list.d/erlang-solutions.list
wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc |  apt-key add -
echo "deb http://packages.cloudant.com/debian `lsb_release -cs` main" | tee /etc/apt/sources.list.d/cloudant.list
wget http://packages.cloudant.com/KEYS -O - |  apt-key add -
apt-get update -y
apt-get install -y erlang-nox erlang-dev
apt-get install -y build-essential
apt-get install -y erlang-nox
apt-get install -y libmozjs185-cloudant libmozjs185-cloudant-dev
apt-get install -y libnspr4 libnspr4-0d libnspr4-dev libcurl4-openssl-dev curl libicu-dev

useradd -d /var/lib/couchdb couchdb
mkdir -p /usr/local/{lib,etc}/couchdb /usr/local/var/{lib,log,run}/couchdb /var/lib/couchdb
chown -R couchdb:couchdb /usr/local/{lib,etc}/couchdb /usr/local/var/{lib,log,run}/couchdb
chmod -R g+rw /usr/local/{lib,etc}/couchdb /usr/local/var/{lib,log,run}/couchdb


http://www.apache.org/dyn/closer.cgi?path=/couchdb/source/

tar xzf apache-couchdb-*.tar.gz
cd apache-couchdb-*
./configure --prefix=/usr/local --with-js-lib=/usr/lib --with-js-include=/usr/include/mozjs --enable-init
make && sudo make install

sudo ln -s /usr/local/etc/init.d/couchdb /etc/init.d/couchdb
sudo /etc/init.d/couchdb start
sudo update-rc.d couchdb defaults

#check if it runs
curl http://127.0.0.1:5984/

Вам может потребоваться установить зависимости SpiderMonkey и jsapi

Ответ 7

Для пользователей Windows зайдите в папку установки apache (C:\Program Files (x86)\Apache Software Foundation\CouchDB\etc\couchdb) < - был здесь для меня и обновил файл local.ini с помощью ниже подробностей... работал у меня очарованием, спасибо ребятам

 [cors]
 credentials: true
 headers: accept, authorization, content-type, origin, referer, cache-control,          x-requested-with
 methods: GET,PUT,POST,HEAD,DELETE
 origins: *

 [httpd]
 enable_cors = true

очевидно, перезапустите службу apache couchdb для полноты:)