Чтобы развернуть мое приложение 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-адреса бонсай, но это не работает.
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"
}
} ]
}
}
Вопрос: что я упускаю?