Elasticsearch 和 fetch:不支持 Content-Type 标头 [text/plain;charset=UTF-8]

ora*_*zur 5 javascript node.js express elasticsearch fetch-api

我正在尝试让 Elasticsearch 服务器运行,但无法成功。

我在 localhost:9200 上运行 Elasticsearch,在 localhost:3310 上运行一个 Express 服务器,我在其中运行 node.js 和我的代码(html 和 js)。

我正在使用 fetch 向 elasticsearch 发出 http 请求以检索数据。如果我使用带有 URL 的精简搜索,例如:

http://localhost:9200/movies2/_search?q=fields.title:Lord
Run Code Online (Sandbox Code Playgroud)

它有效,但是当我尝试使用 fetch 发出请求时,例如:

const source= "http://localhost:9200/movies2/_search?" 
var myInit = { method: 'POST',
                    mode: 'cors',
                    cache: 'default' ,
                    header : {
                        "Access-Control-Allow-Origin" : "*",
                        "Content-Type": "application/json"
                    },
                    body : JSON.stringify({
                        "query" : {
                            "match" : {[searchDSL]: x}
                        }
                    })
            };
 let reqLite = await fetch(source, myInit)
Run Code Online (Sandbox Code Playgroud)

事实并非如此。我有这个错误:

错误:“不支持内容类型标头 [text/plain;charset=UTF-8]”

我不明白为什么我会收到这条消息。我根据我的请求、标头以及 elasticsearch .yml 文件授权了 CORS:

http.cors.enabled: true
http.cors.allow-origin: "*"
Run Code Online (Sandbox Code Playgroud)

您能解释并教我为什么它不起作用吗?