2016-04-07 12 views
3

Ich verwende Elasticsearch zum Speichern und Abfragen von Protokollen. Ich erstelle eine Front-End-Benutzeroberfläche, die die abgefragten Informationen von Elasticsearch auf einer Webseite mit AngularJs anzeigt. Die Webseite läuft auf CentOS 6 Apache auf Port 80 Elasticsearch auf Port läuft 9200. Wenn ich Elasticsearch mit AngularJS Abfrage ich die folgende Störung erhalte:Elasticsearch CORS HTTPD und AngularJs Kommunikation Problem

XMLHttpRequest cannot load http://my_ip/ali_viewer/log/_search. Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response. 

Dies scheint ein verbreitetes Problem auf Stackoverflow gefunden werden und der Rest des Webs, aber nachdem ich so viele Lösungen ohne Erfolg versucht habe, werde ich meine spezifische Konfiguration veröffentlichen.

httpd.conf

<Directory /> 
    Header set Access-Control-Allow-Origin "*" 
    Header always set Access-Control-Allow-Methods "POST, GET, PUT, DELETE, OPTIONS" 
    Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type" 
    Options FollowSymLinks 
    AllowOverride None 
</Directory> 

elasticsearch.yml

http.cors.enabled : true 
http.cors.allow-origin : "*" 
http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE 
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type, Content-Length 

Weiß jemand, warum dies nicht funktioniert?

Antwort