web-dev-qa-db-ja.com

couchDBにcorsを追加する方法-要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません

PouchDbからcouchDbにデータを同期するHTMLファイルを作成しようとしていますが、chromeコンソールで次のエラーが発生します。

Uncaught TypeError:nullのメソッド「addEventListener」を呼び出せません

オプション http:// localhost:5984/todos / 405(メソッドは許可されていません)

オプション http:// localhost:5984/todos / リクエストされたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン ' http:// localhost:808 'はアクセスを許可されません。 XMLHttpRequestが読み込めません http:// localhost:5984/todos / 。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン ' http:// localhost:808 'はアクセスを許可されません。オプション http:// localhost:5984/todos / リクエストされたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン ' http:// localhost:808 'はアクセスを許可されません。 pouchdb-nightly.js:3496オプション http:// localhost:5984/todos / リクエストされたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン ' http:// localhost:808 'はアクセスを許可されません。 pouchdb-nightly.js:3496 XMLHttpRequestが読み込めません http:// localhost:5984/todos / 。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン ' http:// localhost:808 'はアクセスを許可されません。

この問題を回避する方法を見つけました。つまり、私は次のコマンドを使用してchromeを開く必要があります:cd C:\ Program Files(x86)\ Google\Chrome\Application Chrome.exe --disable-web-security。問題を解決しません。ここで同様の質問をたくさん見ましたが、この分野で比較的新しいので、私は答えを理解できませんでした

19
ess

このドキュメント から:

CORSサポートを有効にするには、enable_cors = true[httpd]セクションにlocal.iniオプションを設定し、[cors]設定を含むorigins = *セクションを追加する必要があります。デフォルトでは、オリジンは受け入れられないことに注意してください。ワイルドカードまたはホワイトリストを使用する必要があります。

[httpd]
enable_cors = true

[cors]
origins = *
41
robertc

受け入れられた答えは私の問題を解決しません。私がしたことは-

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ユーザーのみ

8
HADI

CORSをCouchDBに追加するツールがあります。

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

その他のドキュメントはこちら: https://github.com/pouchdb/add-cors-to-couchdb

3
nlawson

私が見つけた最も簡単な方法は、以下をインストールすることです:

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の参照方法を確認してください

3
Rodrigo Rubio

CouchdbのCORSセクション:

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

注意x-requested-with

3
Robert Sasak

@szydanコメントごとに、パッケージマネージャーがCORS OPTIONSをサポートしない1.2バージョンを引き続き提供する場合は、ソースからインストールする必要があります。

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の依存関係をインストールする必要があるかもしれません

0
Michael

Windowsユーザーの場合は、Apacheインストールフォルダー(C:\ Program Files(x86)\ Apache Software Foundation\CouchDB\etc\couchdb)<-was here for meに移動し、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サービスを再起動します:)

0
Marc McElhinney