Как отладить HTTP-ответ 406 на стороне клиента JS? - PullRequest
0 голосов
/ 13 января 2020

Я делаю 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),
  });

Есть мысли? Спасибо!

...