2016-10-30 1 views
0

Я пытаюсь разработать приложение JavaScript AngularJS, напрямую подключающееся к серверу elasticsearch, установленному на том же компьютере. Для локального развития я установил последнюю версию optimseach 5.0 и заполнил ее тестовыми данными.Приложение My AngularJS не может подключиться к локальному elasticsearch, работает на localhost: 9200

Простой запрос через $http.get('http://localhost:9200/_search') произошла следующая ошибка:

{"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"headers":{"Accept":"*/*,"Accept-Encoding":"gzip, deflate"},"url":"http://localhost:9200/_search"},"statusText":""} 

Примечание: Звоню AngularJS приложение с помощью Firefox, где я инвалидов CORS в конфигурации. такое же поведение в обеих средах, которые я использую: на моем MacBook Pro и моем WIN10 SurfacePro.

+0

Чтобы быть более точным: я обошел CORS Ошибки в Firefox для тестирования в config, установив security.fileuri.strict_origin_policy в false –

ответ

0

Я нашел решение после того, как 2 часа в отчаянность; -/

Просто отключить CORS на уровне Elasticsearch, но, конечно, это не должно быть сделано для производственных сред.

Добавьте эти две строки в ./config/elasticsearch.yml

http.cors.enabled: true 
http.cors.allow-origin: /https?:\/\/localhost(:[0-9]+)?/ 

Найти здесь документации продавцов: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html

0

Если CORS отключен, то это ваша проблема. Тот же хост на другом порту считается другим происхождением.