Conexão do cliente elasticsearch.js recusada: Access-Control-Allow-Origin não reconhecido?
Eu tenho tentado executar ping em um elasticsearch em execução local usando elasticsearch.jquery.min.js e recebo um erro "sem conexão com a vida" a cada vez.
ETA: No Chrome, vejo o que parece ser um nível bastante baixo de "Conexão recusada". Estou desenvolvendo no MacOS X, e meu navegador aponta para a página viahttp://localhost/~myuserid/SiteName/
. Como eu estou acessandolocalhost:9200
isso claramente se enquadra nos requisitos CORS entre domínios.
Vejo o seguinte erro no console do 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 Adicionei o seguinte ao /etc/apache2/httpd.conf:
<Directory />
Header set Access-Control-Allow-Origin "localhost:9200"
AllowOverride none
Require all denied
</Directory>
e corra
$ sudo apachectl -t
$ sudo apachectl -k graceful
mas o erro persiste. Existe outra configuração que estou ignorando?
Eu sou um noob para elasticsearch.js. Existe algo que eu preciso fazer no lado do elasticsearch para permitir conexões de clientes a partir do navegador ou algo assim?
estou seguindoo livro na minha tentativa 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');
}
}
);
mas estou recebendo os seguintes erros:
"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
Eu posso conectar usando curl na linha de comando, puxar e inserir dados, 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
Diagnósticos adicionais da ETA. O Google Chrome mostra os seguintes rastreamentos de rede para a tentativa falha. Na camada HTTP, a resposta parece que está acontecendo.
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!
A mesma solicitação no 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]
Estou realmente sem saber para onde ir a partir daqui. Vejo muitas referências ao erro no googlz, mas nenhuma das circunstâncias parece remotamente semelhante. Parece que estou apenas atingindo algumas configurações incorretas, mas não consigo encontrar nada que indique o que é isso.