Я пытаюсь подключить внешнее приложение React к локальному узлу эластичного поиска. Я использую ReactiveSearch для подключения эластичного поиска. Мой сервер работает в Digital Ocean и работает под управлением Ubuntu 16.04. Я следовал их руководству по быстрому запуску , чтобы запустить Службу эластичного поиска на сервере, и добавил следующие строки в мой файлasticsearch.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
Мой компонент ReactJS выглядит точно так же, как в начале работы ReactiveSearch говорится, что он должен выглядеть:
<ReactiveBase
app="users"
url="http://localhost:9200">
<DataSearch
componentId="SearchSensor"
dataField={["email", "username", "name"]}
title="Search"
placeholder="Search for users..."
/>
</ReactiveBase>
Но я получаю сообщения об ошибках CORS для заголовков предварительного запроса:
Когда я пытаюсь посетить URL: http://localhost:9200/users/active/_msearch
, я получаю такой ответ:
{"error":{"root_cause":[{"type":"parse_exception","reason":"Failed to derive xcontent"}],"type":"parse_exception","reason":"Failed to derive xcontent"},"status":400}
Но, если я перейду к URL: http://localhost:9200/users/active/1
, это на самом деле работает и вызывает этот объект:
{"_index":"users","_type":"active","_id":"1","_version":1,"found":true,"_source":{ "name": "Jon Stevens", "email": "jon@vendorpay.io" }}
Что в мире здесь происходит? Любая помощь с благодарностью!
СКРИНШОТ ЗАПРОСА / КОНСОЛИ: