不支持ElasticSearch - Content-Type标头[application / x-www-form-urlencoded]

时间:2017-11-29 04:16:51

标签: elasticsearch

我以前有ElasticSearch 5.2,刚升级到6.0。

我正在尝试按照指南here创建索引模板,但收到错误

Content-Type header [application/x-www-form-urlencoded] is not supported

我的查询是

curl -X PUT localhost:9200/_template/template_1 -d '
{
  "index_patterns": ["te*", "bar*"],
  "mappings": {
    "type1": {
      "properties": {
        "host_name": {
          "type": "keyword"
        }
      }
    }
  }
}'

3 个答案:

答案 0 :(得分:154)

要解决此问题,请添加curl选项class view extends Component { render() { const { ready, projects } = this.props if (!ready) return <LoadingView /> return projects.map((project, projectIdx) => <ProjectItem key={projectIdx} {...project} />) function ProjectItem({ _id, title }) { return <div key={_id}> <a href={`/projects/${_id}`}>{title}</a> </div> } } }

此错误是由于ElasticSearch 6.0中引入的严格内容类型检查,如this post

中所述
  

从Elasticsearch 6.0开始,包含正文的所有REST请求也必须为该正文提供正确的内容类型。

答案 1 :(得分:2)

"{ \"name\": { \"first\": {} }, \"address\": [ { \"address1\":\"lane\" } ] } "

在Windows中,当您将JSON作为参数时,请仅使用双引号。使用转义符。

答案 2 :(得分:1)

解决方案是添加app.UseAuthentication(); 标头

Content-Type: application/json