我的系统上有一个Elasticsearch设置,我有一个使用jquery elasticsearcsearch.js创建索引并将记录推送到elasticsearch的Web应用程序。
我正在使用弹性搜索的5.0.0-alpha1版本,在我的设置中,我在elasticsearch.yml文件中添加了以下cors设置:
http.cors.enabled:true
http.cors.allow-credentials:true
http.cors.allow-methods:OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.max-age:0
http.cors.allow-origin:" *"
http.cors.allow-headers:" X-Requested-With,Content-Type,Content-Length,accept,authorization"
但即使在此之后,我仍然会收到此错误(我在Firefox中得到了这个详细的回复):
阻止跨源请求:同源策略禁止在http://localhost:9200/authconfig/chart/123?op_type=create读取远程资源。 (原因:在CORS标题中缺少令牌'内容类型'来自CORS预检频道的访问控制允许标题)。
这是我在Chrome开发者控制台中获得的回复
XMLHttpRequest无法加载(http):// localhost:9200 / authconfig / chart / test?op_type = create。预检响应中的Access-Control-Allow-Headers不允许使用请求标头字段内容类型。 :3001 / js / elasticsearch.jquery.js:63257错误:2016-07-18T18:42:05Z 错误:请求错误,正在重试 POST(http):// localhost:9200 / authconfig / chart / test?op_type = create =>请求未能完成。 在Log.error(http):// localhost:3001 / js / elasticsearch.jquery.js:62942:56) at checkRespForFailure(http):// localhost:3001 / js / elasticsearch.jquery.js:63755:18) 在XMLHttpRequest.xhr.onreadystatechange(http):// localhost:3001 / js / elasticsearch.jquery.js:62299:7)
相同的设置适用于elasticsearch 2.3.3完全正常但由于某些限制,我将不得不在我的设置中使用5.0.0-alpha1。
我在这里经历了很多链接和问题,但是他们都建议在allow-headers字段中进行更改,但在我的设置中我已经在其中添加了Content-Type选项。
我几天都坚持这个。所有帮助表示赞赏。