首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的AngularJS应用程序无法连接到本地elasticsearch,运行在localhost:9200上

我的AngularJS应用程序无法连接到本地elasticsearch,运行在localhost:9200上
EN

Stack Overflow用户
提问于 2016-10-30 18:48:41
回答 2查看 109关注 0票数 0

我尝试开发一个AngularJS JavaScript应用程序,直接连接到安装在同一台机器上的elasticsearch后端。对于本地开发,我安装了最新的elasticseach 5.0,并在其中填充了测试数据。

通过$http.get('http://localhost:9200/_search')的简单请求失败,错误如下:

代码语言:javascript
运行
复制
{"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"headers":{"Accept":"*/*,"Accept-Encoding":"gzip, deflate"},"url":"http://localhost:9200/_search"},"statusText":""}

备注:我通过火狐调用我的AngularJS应用程序,我在配置中禁用了CORS。在我使用的两个开发环境上:在我的MacBook专业版和我的WIN10 SurfacePro上,行为是相同的。

EN

回答 2

Stack Overflow用户

发布于 2016-10-30 18:54:14

经过2小时的绝望,我找到了解决方案;-/

只需在Elasticsearch级别停用CORS,但当然不应该在生产环境中这样做。

在./config/elasticsearch.yml中添加以下两行

代码语言:javascript
运行
复制
http.cors.enabled: true
http.cors.allow-origin: /https?:\/\/localhost(:[0-9]+)?/

在此处找到供应商文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html

票数 0
EN

Stack Overflow用户

发布于 2016-10-30 18:55:05

如果CORS被禁用,那么这就是你的问题。不同端口上的同一主机被视为不同的来源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40328275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档