在docker安装了elasticsearch-head:5和elasticsearch:7.6.2之后,打开界面连接es时发现数据无法展示。
关于ElasticSearch-Head中查询不出数据的解决方法_原力计划

于是网上查了下原因,说是elasticsearch 7增加了请求头严格校验的原因,并且返回结果是

{
“error” : “Content-Type header [application/x-www-form-urlencoded] is not supported”,
“status” : 406
}

所以我们需要修改一下elasticsearch-head 5的配置文件。

进入elasticsearch-head容器后

关于ElasticSearch-Head中查询不出数据的解决方法_elasticsearch_02

找到vendor.js,修改文件里的两处:
1、6886行
contentType: "application/x-www-form-urlencoded
改成
contentType: “application/json;charset=UTF-8”

2、7573行
var inspectData = s.contentType === “application/x-www-form-urlencoded” &&
改成
var inspectData = s.contentType === “application/json;charset=UTF-8” &&

PS:
vim中显示行号的命令为 :set nu
vim中跳转到指定行的命令为 :行号
vim中查找字符串方法如下:命令模式(不是编辑模式)下输入“/字符串”,例如“/Section 3”。如果查找下一个,按“n”即可。

vim命令用不了的,可以依次敲下列命令,然后就可以用vim命令了

apt-get update
apt-get install vim

注意,在docker容器内,不是使用yum install xxx,而是使用 apt-get install xxx

改完后,无需重启,chrome浏览器强制刷新页面就可以了

ctrl + F5 : 浏览器强制刷新,清空缓存

关于ElasticSearch-Head中查询不出数据的解决方法_字符串_03