小编ora*_*zur的帖子

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

我正在尝试让 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 …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express elasticsearch fetch-api

5
推荐指数
0
解决办法
796
查看次数

标签 统计

elasticsearch ×1

express ×1

fetch-api ×1

javascript ×1

node.js ×1