gpt4 book ai didi

json - 来自 Elasticsearch 过滤查询的Ajax 400错误请求

转载 作者:行者123 更新时间:2023-12-03 00:54:19 25 4
gpt4 key购买 nike

当查询具有过滤器时,我想使用Ajax从elasticsearch检索数据。
我正在使用GET。

我的代码如下:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$.ajax({
type: 'GET',
url : 'HOST/tomo2o/shop/_search',
crossDomain: true,
data: JSON.stringify({"query":{"match":{"catlev1":"Motors"}}}),
contentType:'application/json; charset=utf-8',
dataType: 'json',
success: function(data) {
console.log(data);
},
error: function(e) {
console.log(e);
}
});
});
</script>

我做了人们建议做的三件事:
  • 字符串化json过滤器
  • 将数据类型设置为json
  • 将内容类型设置为application / json

  • 但是我仍然收到以下错误:
    GET HOST/tomo2o/shop/_search?{%22query%22:{%22match%22:{%22catlev1%22:%22Motors%22}}} 400 (Bad Request)

    最佳答案

    当您想要传递DSL query in the query string时,您需要在source参数中传递它,并添加source_content_type参数以指示内容类型

    因此,您可以这样做:

        $.ajax({
    type: 'GET',
    url : 'HOST/tomo2o/shop/_search',
    crossDomain: true,
    data: {
    source: JSON.stringify({"query":{"match":{"catlev1":"Motors"}}}),
    source_content_type: "application/json"
    },
    contentType:'application/json; charset=utf-8',
    dataType: 'json',
    success: function(data) {
    console.log(data);
    },
    error: function(e) {
    console.log(e);
    }
    });

    关于json - 来自 Elasticsearch 过滤查询的Ajax 400错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46759444/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com