elasticsearch Elasticsearch CORS错误与反应搜索,elasticsearch,cors,reactivesearch,elasticsearch,Cors,Reactivesearch" /> elasticsearch Elasticsearch CORS错误与反应搜索,elasticsearch,cors,reactivesearch,elasticsearch,Cors,Reactivesearch" />

elasticsearch Elasticsearch CORS错误与反应搜索

elasticsearch Elasticsearch CORS错误与反应搜索,elasticsearch,cors,reactivesearch,elasticsearch,Cors,Reactivesearch,我已经有了一个节点/Express服务器设置,用于使用我的Create React应用程序进行jwt身份验证。我正在使用CORS npm包和简单中间件app.use(CORS())解决预期的CORS相关问题及其工作性能 现在,我想将Elasticsearch和React应用程序添加到我的React应用程序中,并试图找出如何通过本地ES实例克服CORS问题 我的第一个猜测是,我需要创建一个单独的searchRoutes.js文件,并实现ES在本地工作并连接到我的React应用程序所需的任何CORS

我已经有了一个节点/Express服务器设置,用于使用我的Create React应用程序进行jwt身份验证。我正在使用CORS npm包和简单中间件
app.use(CORS())
解决预期的CORS相关问题及其工作性能

现在,我想将Elasticsearch和React应用程序添加到我的React应用程序中,并试图找出如何通过本地ES实例克服CORS问题

我的第一个猜测是,我需要创建一个单独的searchRoutes.js文件,并实现ES在本地工作并连接到我的React应用程序所需的任何CORS代码

我一直在关注ReactiveSearch的文档(使用http代理中间件),但没有任何成功。。。继续获取此CORS错误:加载失败?:飞行前响应中的访问控制允许标头不允许请求标头字段内容类型

尽管我相信我已经实施了CORS飞行前测试

欢迎提供任何建议、链接或教程

更新:这是我的Nodejs index.js(服务器)


首先,您可以去掉它,简单明了地为所有请求启用CORS:

app.use(cors())
假设您仍然希望使用单路由:您的代码引用了一个路由“autocomplete”,您发布的返回CORS错误的链接引用了另一个路由“query_index/”,因为您选择了使用单路由启用方式,所以您需要修复此问题并使用启用CORS的匹配路由

从您发布的内容来看,您的解决方案看起来更不完整。 如果你看:

并将其与您的进行比较,您应该在路由中添加回调,因为回调是逻辑发生的地方(传输到控制器等)。 这可能是这样的:

app.get('/autocomplete', cors(), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for route \/autocomplete'})
})

您需要将这些cors权限添加到elasticsearch.yml配置文件中

您可以发布更多代码或回购链接吗?在国际海事组织,这应该是可行的,这里有一些例子case@DivyanshuMaithani-我也应该能够与npm cors包一起工作,对吗?不仅仅是http代理中间件。@DivyanshuMaithani-刚刚发布了我的整个index.js for Nodejs,包括CORS和http代理中间件代码,请看一看,告诉我我在做什么wrong@DivyanshuMaithani-如果我在本地ES中设置了正确的CORS设置,我仍然需要使用来自npm或http代理中间件的CORS包来让ES和CreateSearch相互对话。我想我明白你的意思了。是的,/autocomplete是客户端路由,在端口3000上运行,ES是9200上的后端。只需要使用CORS配置稍微调整一下路由。重新审视这个问题-谢谢。
app.use(cors())
app.get('/products/:id', cors(), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for a Single Route'})
})
app.get('/autocomplete', cors(), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for route \/autocomplete'})
})
http.cors.enabled: true
http.cors.allow-credentials: true
http.cors.allow-origin: '*'
http.cors.allow-headers: X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization, Access-Control-Allow-Headers, Accept