Надстройка Bonsai Elasticsearch: 401 Неавторизованная ошибка

Чтобы развернуть мое приложение firebase, использующее Elasticsearch, я рассматриваю надстройку Heroku Bonsai.

Все настроено, проблема в том, что я получаю несанкционированную ошибку при передаче запроса Ajax. Точно такой же код работает гладко на локальном компьютере (ссылка), но не при развертывании.

Ajax.jx

$(function() {
    $('#message').keyup(function() {
        var query = {
            "query": {
                "match": {
                    "song": {
                        "query": $("#message").val(),
                        "operator": "and"
                    }
                }
            }
        };

        $.ajax({
            type: "POST",
            url: "https://<username>:<password>@xxxwood-5671445.xx-xxxx-1.bonsaisearch.net/firebase/_search",
            contentType: 'application/json',
            crossDomain: true,
            data: JSON.stringify(query),
            success: searchSuccess,
            dataType: 'json'
        });

    });

});

Я использовал правильное имя пользователя и пароль для своего URL-адреса бонсай, но это не работает.

Ошибка консоли: введите здесь описание изображения

Ошибка консоли Chrome: введите здесь описание изображения

cURL работает нормально:

[~]$ curl -XGET 'https://<username>:<password>@dogwood-5671445.xx-xxxx-1.bonsaisearch.net/firebase/_search?pretty' -H 'Content-Type: application/json' -d'
{"query": {"match": {"song": {"query": "i am in", "operator": "and"}}}}'

результат CURL:

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.4048493,
    "hits" : [ {
      "_index" : "firebase",
      "_type" : "song",
      "_id" : "0001",
      "_score" : 1.4048493,
      "_source" : {
        "song" : "i am in california",
        "song_name" : "hello",
        "song_url" : "https://xxx.xx/xxxx"
      }
    } ]
  }
}

Вопрос: что я упускаю?


person Manganese    schedule 24.06.2017    source источник
comment
Что произойдет, если вы прикрепите учетные данные для аутентификации в заголовке следующим образом?: stackoverflow.com/a/5507289/2592585   -  person ryanlutgen    schedule 25.06.2017
comment
Если бы вы могли добавить это в качестве ответа, чтобы я мог его принять. Как вы правильно заметили, это была проблема с заголовком. Спасибо.   -  person Manganese    schedule 25.06.2017
comment
Кроме того, если вы просто выполняете поиск с помощью Ajax, Bonsai позволяет вам включить режим только для чтения, для которого не требуются учетные данные. Таким образом, вы не распространяете свои учетные данные среди общественности :-)   -  person Nick Zadrozny    schedule 26.06.2017


Ответы (1)


Скорее всего, Ajax не передавал учетные данные из URL-адреса. Прикрепите аутентификацию через HTTP-заголовок следующим образом: использовать Basic Auth с jQuery и AJAX?

person ryanlutgen    schedule 25.06.2017