我在Docker上使用Kibana和Elasticsearch。我创建了一个Kibana插件,该插件使用户可以更新ES中的任何索引。 开发的插件可以在本地计算机上运行,但是在容器上,我在控制台中收到此错误:
POST:http://localhost:5600/api/my_discover/index/.kibana/doc/config:6.2.4/%7B%22type%22:%22config%22,%22updated_at%22:%222018-08-14T12:35:15.616Z%22,%22config%22:%22%7B/%22buildNum/%22:16627,/%22xPackMonitoring:showBanner/%22:true%7D%22%7D 404(未找到)可能未处理的拒绝: {“ data”:{“ statusCode”:404,“ error”:“ Not 找到“}”“状态”:404,“ config”:{“方法”:“ POST”,“ transformRequest”:[null],“ transformResponse”:[null],“ jsonpCallbackParam”:“回调”,“ url” :“ ../ api / my_discover / index / .kibana / doc / config:6.2.4 / {\” type \“:\” config \“,\” updated_at \“:\” 2018-08-14T12:35 :15.616Z \“,\” config \“:\” {\\“ buildNum \\”:16627,\\“ xPackMonitoring:showBanner \\”:true} \“}”,“ headers”:{“ Accept” :“ application / json, text / plain, / ”,“ kbn-version”:“ 6.2.4”}},“ statusText”:“未找到”}
我的控制器:
.controller('editHit', function($http) {
this.hit = JSON.parse(sessionStorage.getItem('SELECTED_HIT'));
// Edit the hit
this.edit = function () {
// Hit is an object: _id, _index, _score, _source(dataModel), _type
let doc = JSON.stringify(this.hit._source);
$http.post(`../api/my_discover/index/${this.hit._index}/${this.hit._type}/${this.hit._id}/${doc}`).then((response) => {
if(response.status === 200){
alert("Modification done !");
}
});
我的API:
// This API used to do update a hit
server.route({
path: '/api/my_discover/index/{name}/{type}/{id}/{doc}',
method: 'POST',
handler(req, reply) {
let doc = JSON.parse(req.params.doc)
client.update({
index: req.params.name,
type: req.params.type,
id: req.params.id,
body: {
doc: doc
},
refresh: true
}, function (err,response) {
reply(response);
});
}
});
是什么让我发疯,就像我说的那样,POST在我的本地计算机上运行完美,但是在容器中没有! GET方法(例如获取索引列表)在这两种方法中均能完美运行。我找不到任何解释。 我会很感激你们的帮助^^