Conexión de cliente elasticsearch.js rechazada: ¿Access-Control-Allow-Origin no reconocido?
He estado tratando de hacer ping a un elasticsearch que se ejecuta localmente usando elasticsearch.jquery.min.js y cada vez me sale un error de "no hay conexión viva".
ETA: en Chrome veo lo que parece un "nivel de conexión rechazado" bastante bajo. Estoy desarrollando en MacOS X, y mi navegador apunta a la página a través dehttp://localhost/~myuserid/SiteName/
. Como estoy accediendolocalhost:9200
esto claramente cae bajo los requisitos de CORS de dominio cruzado.
Veo el siguiente error en la consola de Chrome:
XMLHttpRequest cannot load http://localhost:9200/?hello=elasticsearch!.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost' is therefore not allowed access.
Porhttp://enable-cors.org/server_apache.html He agregado lo siguiente a /etc/apache2/httpd.conf:
<Directory />
Header set Access-Control-Allow-Origin "localhost:9200"
AllowOverride none
Require all denied
</Directory>
y correr
$ sudo apachectl -t
$ sudo apachectl -k graceful
Pero el error persiste. ¿Hay otra configuración que estoy pasando por alto?
Soy un novato en elasticsearch.js. ¿Hay algo que deba hacer en el lado de Elasticsearch para permitir conexiones de clientes desde el navegador, o algo así?
estoy siguiendoel libro en mi intento de ping:
var client = new $.es.Client({
hosts: 'localhost:9200'
});
client.ping(
{
requestTimeout: Infinity,
// undocumented params are appended to the query string
hello: "elasticsearch!"
},
function (error) {
if (error) {
console.error('elasticsearch cluster is down!');
console.error(error);
} else {
console.log('All is well');
}
}
);
pero recibo los siguientes errores:
"WARNING: 2015-10-10T07:00:16Z" elasticsearch.jquery.min.js:14:10575
Unable to revive connection: http://localhost:9200/
"WARNING: 2015-10-10T07:00:16Z" elasticsearch.jquery.min.js:14:10575
No living connections
Me puedo conectar usando curl en la línea de comando bien, extraer e insertar datos, etc.
$ curl "localhost:9200/_cat/indices?v"
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open fuddle 1 0 3 0 12.9kb 12.9kb
green open faddle 1 0 0 0 144b 144b
ETA diagnósticos adicionales. Google Chrome muestra los siguientes rastros de red para el intento fallido. En la capa HTTP, la respuesta parece que está sucediendo.
General
Remote Address:[::1]:9200
Request URL:http://localhost:9200/?hello=elasticsearch!
Request Method:HEAD
Status Code:200 OK
Response Headers
Content-Length:0
Content-Type:text/plain; charset=UTF-8
Request Headers
Accept:text/plain, */*; q=0.01
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:0
Host:localhost:9200
Origin:http://localhost
Referer:http://localhost/~browsc3/Opticon/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
Query String Parameters
view URL encoded
hello:elasticsearch!
La misma solicitud en wget:
wget http://localhost:9200/?hello=elasticsearch!
--2015-10-10 09:47:13-- http://localhost:9200/?hello=elasticsearch!
Resolving localhost... ::1, 127.0.0.1
Connecting to localhost|::1|:9200... connected.
HTTP request sent, awaiting response... 200 OK
Length: 342 [application/json]
Saving to: 'index.html?hello=elasticsearch!'
index.html?hello=elastics 100%[=====================================>] 342 --.-KB/s in 0s
2015-10-10 09:47:13 (65.2 MB/s) - 'index.html?hello=elasticsearch!' saved [342/342]
Estoy realmente perdido a dónde ir desde aquí. Veo muchas referencias al error en el googlz, pero ninguna de las circunstancias parece remotamente similar. Parece que estoy llegando a una mala configuración, pero no puedo encontrar nada que indique qué es eso.