javascript - resource - cómo agregar cors en couchDB-No hay ningún encabezado ''Access-Control-Allow-Origin'' presente en el recurso solicitado
jquery no access control allow origin (7)
Estoy tratando de crear un archivo html que sincronice los datos de pouchDb a couchDb ..but iam obteniendo el siguiente error en la consola de Chrome.
No se detectó TypeError: no se puede llamar al método ''addEventListener'' de nulo
OPCIONES http://localhost:5984/todos/ 405 (Método no permitido)
OPCIONES http://localhost:5984/todos/ No hay encabezado ''Access-Control-Allow-Origin'' presente en el recurso solicitado. Por lo tanto, el origen '' http: // localhost: 8080 '' no tiene permitido el acceso. XMLHttpRequest no puede cargar http://localhost:5984/todos/ . No hay ningún encabezado ''Access-Control-Allow-Origin'' presente en el recurso solicitado. Por lo tanto, el origen '' http: // localhost: 8080 '' no tiene permitido el acceso. OPCIONES http://localhost:5984/todos/ No hay encabezado ''Access-Control-Allow-Origin'' presente en el recurso solicitado. Por lo tanto, el origen '' http: // localhost: 8080 '' no tiene permitido el acceso. pouchdb-nightly.js: 3496 OPCIONES http://localhost:5984/todos/ No el encabezado ''Access-Control-Allow-Origin'' está presente en el recurso solicitado. Por lo tanto, el origen '' http: // localhost: 8080 '' no tiene permitido el acceso. pouchdb-nightly.js: 3496 XMLHttpRequest no puede cargar http://localhost:5984/todos/ . No hay ningún encabezado ''Access-Control-Allow-Origin'' presente en el recurso solicitado. Por lo tanto, el origen '' http: // localhost: 8080 '' no tiene permitido el acceso.
He encontrado una manera de evitar este problema. Es decir, tengo que abrir Chrome con el siguiente comando: cd C: / Archivos de programa (x86) / Google / Chrome / Application Chrome.exe --disable-web-security.Pero esto no resolvió el problema. Vi muchas preguntas similares aquí. Pero no entendí ninguna respuesta porque soy relativamente nuevo en este campo.
Ahora hay una herramienta que agregará CORS a CouchDB para usted:
npm install -g add-cors-to-couchdb
add-cors-to-couchdb
Más documentación aquí: https://github.com/pouchdb/add-cors-to-couchdb
De esta documentación :
Para habilitar el soporte de CORS, debe configurar la opción
enable_cors = true
en la sección[httpd]
delocal.ini
, y agregar una sección[cors]
que contenga una configuración deorigins = *
. Tenga en cuenta que de forma predeterminada, no se aceptan orígenes; debe utilizar un comodín o una lista blanca.
[httpd] enable_cors = true [cors] origins = *
La forma más fácil que encontré es instalar lo siguiente:
npm install -g add-cors-to-couchdb
A continuación, ejecute la herramienta, es decir, "add-cors-to-couchdb" desde la línea de comandos de esta manera:
add-cors-to-couchdb <you_url>:<port> -u <user_name> -p <your_password>
Echa un vistazo al siguiente enlace para CouchDB cómo hacer referencia a CORS
La respuesta aceptada no resuelve mi problema. Lo que hice es ...
actualizar local.ini (/ ubicación de instalación / 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
Luego abra CMD en modo administrador y ejecute -
net.exe stop "Apache CouchDB" && net.exe start "Apache CouchDB"
*** Solo para usuarios de Windows
Para usuarios de Windows, vaya a la carpeta de instalación de apache (C: / Archivos de programa (x86) / Apache Software Foundation / CouchDB / etc / couchdb) <- estuvo aquí para mí, y actualice el archivo local.ini con los detalles a continuación. .funcionó un encanto para mí, gracias chicos
[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
Obviamente, reinicie el servicio de apache couchdb para completar :)
Sección CORS en couchdb:
credentials: true
headers: accept, authorization, content-type, origin, referer, cache-control, x-requested-with
methods: GET,PUT,POST,HEAD,DELETE
origins: *
Aviso x-requested-with
Según el comentario de @szydan, en el caso de que su administrador de paquetes aún tenga la versión 1.2, que no es compatible con OPCIONES DE CORS, debe instalarlo desde la fuente.
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/
Es posible que necesite instalar las dependencias de SpiderMonkey y jsapi