Elasticsearch发送获取请求而不发布

时间:2015-07-04 08:55:02

标签: javascript jquery elasticsearch

这是我向我的elasticseach服务器发送GET请求的代码:

var client = new elasticsearch.Client({
    host: 'localhost:9200',
    log: 'trace'
});
client.search({
  index: 'deals',
  type: 'couchbaseDocument',
  body: {
    query: {
      match: {
        source: 'doc.amenities'
      }
    }
  }
}).then(function (resp) {
    var hits = resp.hits.hits;
}, function (err) {
    console.trace(err.message);
});

但是,这是发送的实际请求after checking chrome developing tools

 POST "http://localhost:9200/deals/couchbaseDocument/_search".

但我需要GET而不是POST

怎么样?

我已经检查了documentation

他们只是说如何发送headpost,没有GET次请求

1 个答案:

答案 0 :(得分:0)

大多数浏览器都不允许您向GET请求附加正文,这就是库无法以这种方式工作的原因,以及REST API接受POST的原因纯粹是一个只读请求。

您可以通过changing the default method usedpassing your own method)覆盖行为,但我建议不要这样做,以保证兼容性。我假设您正在与代理作斗争,以确保只允许只读请求。您应该只为POST/_search结尾的var position = System.Windows.Forms.Cursor.Position; 个请求为Elasticsearch提供例外,而不是试图与浏览器对抗代理。