我正在尝试使用 qwest 将一些数据发送到Elasticsearch:

qwest.post(
    'http://elk.example.com:9200/incidents',
    this.incident,
    {cache: true}
)
    .then(function (xhr, response) {
        console.log('incident posted')
    })
    .catch(function (e, xhr, response) {
        console.log('error posing incident: ' + e)
    })

其中this.incidentObject(来自Vue.js)。

call 失败并显示406 (Not Acceptable)错误,我understand是来自Elasticsearch服务器的信息,告诉我我想要某种格式的答案,他无法使用。

call 仍然失败(没有索引文件),所以我不确定我的理解是否正确?

如果是这样-请问正确的格式是什么?

最佳答案

incident对象不是正确序列化的JSON字符串。您需要调用JSON.stringify(this.incident)以获得等效的JSON字符串,并指定application/json HTTP header 。

$.ajax({
            url: 'http://example.com:9200/incidents/incidents',
            type: 'POST',
            data: JSON.stringify(this.incident),
            dataType: 'json'
        })

09-05 07:28