为什么AngularJS在$httppost请求的数据对象末尾加冒号
Why does AngularJS add colon in the end of data object in $http post request
当尝试使用 angular js $http 向 post 请求 elasticSearch 时,我收到 "Unexpected token : " 错误。
我的代码如下所示:
var request= $http({
method: "post",
url: path,
accept:"*/*",
headers:{"Content-Type" : "application/x-www-form-urlencoded; charset: UTF-8"},
data:{
"query":{
"fuzzy":{
"title":{
"value": $scope.searchTerm,
"fuzziness":"1"
}
}
},
"highlight":{
"fields":{
"*":{}
}
}
}
});
在 chrome 控制台上查看表单数据部分时,我看到 json 后面有一个冒号。
[{"query":{"fuzzy":{"title":{"value": $scope.searchTerm,"fuzziness":"1"}}},
"highlight":{"fields":{"*":{}}}}]: <--- this is the problem
这很奇怪。
关于如何消除尾随冒号的任何想法?
对于遇到这种行为的任何人,
在我的例子中,这是因为我索引了一个 JSON 结构错误的文档。
将批量索引选项与 elasticSearch 一起使用时 - JSON 具有无效结构的索引会在没有警告的情况下被索引。
错误实际上是在响应中,而不是在 http 请求中。
尝试重新索引文档,这可能会解决此问题。
在我们的例子中,http.post 缺少应该设置为“application/json”的 HTTP header“内容类型”,它是 posted.
如果您 posting json,只需添加
{headers:{'Content-Type': 'application/json'}}
作为 post 方法的第三个参数。原来如此
$http.post( endpoint, json_payload, {headers:{'Content-Type': 'application/json'}} )
当尝试使用 angular js $http 向 post 请求 elasticSearch 时,我收到 "Unexpected token : " 错误。
我的代码如下所示:
var request= $http({
method: "post",
url: path,
accept:"*/*",
headers:{"Content-Type" : "application/x-www-form-urlencoded; charset: UTF-8"},
data:{
"query":{
"fuzzy":{
"title":{
"value": $scope.searchTerm,
"fuzziness":"1"
}
}
},
"highlight":{
"fields":{
"*":{}
}
}
}
});
在 chrome 控制台上查看表单数据部分时,我看到 json 后面有一个冒号。
[{"query":{"fuzzy":{"title":{"value": $scope.searchTerm,"fuzziness":"1"}}},
"highlight":{"fields":{"*":{}}}}]: <--- this is the problem
这很奇怪。 关于如何消除尾随冒号的任何想法?
对于遇到这种行为的任何人,
在我的例子中,这是因为我索引了一个 JSON 结构错误的文档。 将批量索引选项与 elasticSearch 一起使用时 - JSON 具有无效结构的索引会在没有警告的情况下被索引。
错误实际上是在响应中,而不是在 http 请求中。
尝试重新索引文档,这可能会解决此问题。
在我们的例子中,http.post 缺少应该设置为“application/json”的 HTTP header“内容类型”,它是 posted.
如果您 posting json,只需添加
{headers:{'Content-Type': 'application/json'}}
作为 post 方法的第三个参数。原来如此
$http.post( endpoint, json_payload, {headers:{'Content-Type': 'application/json'}} )