elasticsearch,Angularjs,elasticsearch" /> elasticsearch,Angularjs,elasticsearch" />

使用AngularJS和ElasticSearch对飞行前的响应无效(重定向)

使用AngularJS和ElasticSearch对飞行前的响应无效(重定向),angularjs,elasticsearch,Angularjs,elasticsearch,我正在开发Angular 1.6.3应用程序,它使用elasticsearch.js库查询远程服务器上运行的elasticsearch 5.4实例。最近,我们的应用程序开始出现问题,当它最初接触ElasticSearch以查找数据时,它收到了几个飞行前无效(重定向)错误的响应。目前,此问题仅在Chrome中发生: 开发者工具中请求的屏幕截图: 这个错误似乎是随机发生的,当用户以Chrome的匿名模式或其他浏览器(如Firefox)访问应用程序时不会发生 在做了一些研究之后,我发现这个OPTIO

我正在开发Angular 1.6.3应用程序,它使用elasticsearch.js库查询远程服务器上运行的elasticsearch 5.4实例。最近,我们的应用程序开始出现问题,当它最初接触ElasticSearch以查找数据时,它收到了几个飞行前无效(重定向)错误的
响应。目前,此问题仅在Chrome中发生:

开发者工具中请求的屏幕截图:

这个错误似乎是随机发生的,当用户以Chrome的匿名模式或其他浏览器(如Firefox)访问应用程序时不会发生

在做了一些研究之后,我发现这个
OPTIONS
请求是一个飞行前请求,浏览器发出请求,询问服务器是否可以发送实际的
POST
,其中包含我想要查询的ElasticSearch。发生预飞行的原因是,我试图使用
application/json
作为
Content-Type
标题进行POST,这不是
Content-Type
标题的“标准”值之一

我的问题是-我如何解决这个问题?我已在
elasticsearch.yml
中更改了CORS设置,但无效:

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization"
我还尝试为每个elasticsearch请求更改elasticsearch.js
内容类型
标题,但每个请求都会继续发送
application/json
,就像设置不听我输入的内容一样:

var client = elasticsearch.Client({
  hosts: [{
    host: 'es-proxy.company.net',
    port: 80,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  }]
});
Chrome DevTool net internals事件页面中失败的
选项
请求的屏幕截图:


任何帮助都将不胜感激。谢谢。

问题的原因可以在
选项
请求底部附近的Chrome DevTool net Internal event(Chrome开发工具网络内部事件)页面中看到,其中显示
Chrome\u EXTENSION\u REDIRECTED\u request
。一个Chrome扩展随机将我的请求重定向到ElasticSearch,有效地取消了它们。由于它是由我的公司(通过企业策略)安装的Chrome扩展,因此无法移动,因此我能够将ElasticSearch主机添加到扩展的白名单中