我正在尝试将来自弹性搜索的 geoshape 查询集成到我的 angularjs 代码中,以发出 http 请求以获取驻留在弹性搜索本地实例上的数据,但控制台会抛出无效 XMLhttp 参数的错误。我想这与我如何在我的 URL 中添加 geojson 有关。以下是我创建http 请求的功能
function spatialsearch() {
var _url = '127.0.0.1:9201/_search?';
var b = {
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"geo_shape": {
"metadata.o2r.spatial.geometry": {
"shape": {
"type": "polygon",
"coordinates": [
[
[-22.0, 76.0],
[-27.0, 65.0],
[-57.0, 65.0],
[-59.0, 76.0],
[-22.0, 76.0]
]
]
},
"relation": "contains"
}
}
}
}
}
};
_url += b;
return $http.get(_url);
console.log("hello");
}
这是我在 angularjs 的 js 文件中调用 http 请求的方式
function callingspatialsearch(){
var deferred = $q.defer();
httpRequests.
spatialsearch()
.then(cb1)
.catch(errorHandler);
return deferred.promise;
function cb1(response){
$log.debug('result of search: %o', response);
deferred.resolve(response);
}
function errorHandler(e){
$log.debug('search error: %o', e);
deferred.resolve(e);
}
}
在我的 HTML 中,我添加了一个按钮,以便当用户单击按钮时显示结果。
<md-button ng-click="vm.button()" class="search-button md-primary md-raised white-font">Spatial</md-button>