Я делаю POST-запрос от моего веб-приложения к локальному экземпляруasticsearch. Если я запускаю POST-запрос с помощью curl, я получаю соответствующий ответ:
curl -XPOST "http://localhost:9200/my-index/_search" -H'content-type: application/json'
-d'{
"highlight": {
"fragment_size": 200,
"number_of_fragments": 1,
"fields": {
"title": {},
"description": {}
}
},
"_source": [
"id",
"nps_link",
"title",
"description"
],
"aggs": {
"states": {
"terms": {
"field": "states.keyword",
"size": 30
}
},
"world_heritage_site": {
"terms": {
"field": "world_heritage_site"
}
},
"visitors": {
"range": {
"field": "visitors",
"ranges": [
{
"from": 0,
"to": 10000,
"key": "0 - 10000"
},
{
"from": 10001,
"to": 100000,
"key": "10001 - 100000"
},
{
"from": 100001,
"to": 500000,
"key": "100001 - 500000"
},
{
"from": 500001,
"to": 1000000,
"key": "500001 - 1000000"
},
{
"from": 1000001,
"to": 5000000,
"key": "1000001 - 5000000"
},
{
"from": 5000001,
"to": 10000000,
"key": "5000001 - 10000000"
},
{
"from": 10000001,
"key": "10000001+"
}
]
}
},
"acres": {
"range": {
"field": "acres",
"ranges": [
{
"from": -1,
"key": "Any"
},
{
"from": 0,
"to": 1000,
"key": "Small"
},
{
"from": 1001,
"to": 100000,
"key": "Medium"
},
{
"from": 100001,
"key": "Large"
}
]
}
}
},
"query": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
},
"size": 20
}'
Тем не менее, когда я делаю POST-запрос с использованием fetch, я получаю ошибку POST http://localhost:9200/my-index/_search net::ERR_ABORTED 406 (Not Acceptable)
. Как посмотреть формат заголовка Accept
, на который отвечает поиск elasti c? Для справки, мой JS код ниже:
const response = await fetch("http://localhost:9200/my-index/_search", {
method: "POST",
headers: {
'Content-Type': 'application/json'
},
mode: 'no-cors',
body: JSON.stringify(body),
});
Есть мысли? Спасибо!