为什么AngularJS在$http post request的data object的末尾添加冒号?
Why does AngularJS add colon in the end of data object in $http post request
当尝试使用angular js $http向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缺少HTTP标头"内容类型"它应该被设置为"application/json",如果它是张贴的。
如果你发布json,只需添加
{headers:{'Content-Type': 'application/json'}}
作为post方法的第三个参数。所以是
$http.post( endpoint, json_payload, {headers:{'Content-Type': 'application/json'}} )
相关文章:
- 使用元素选择器向Object添加函数
- 如何添加 Object.prototype.x?设置为 enumerable:false
- 在jQuery mobile/java脚本的TextBoxes中动态添加未加载的数据.数据具有[object HTMLI
- 使用object.freeze()扩展函数对象-can't添加字段
- 使用 javascript 向 svg-object 添加按钮
- 如何在 IE 11 中动态地将 flash-object 添加到 html
- 在AngularJS的JSON字典中添加Object
- 使用object.assign()添加到对象中的getter发现闭包变量的值错误
- 向Object/Number/String原型添加方法
- 用javascript将构造函数添加回object.create的最佳方式
- 为什么没有将ES5 Object方法添加到Object.prototype中
- node.js:添加到Object的键值对,但在打印Object时不显示
- 通过使用点添加值将数组更改为Object(大写)
- 如何在向Object添加原型时排除一些js类型
- 使用函数向JS Object Literal添加属性
- 只要将字段中的Javascript值添加到另一个字符串中,就会显示为[object Text]
- 为什么不能在控制台中通过Object.create()看到添加的属性
- 添加& lt; object>使用AngularJS控制器自定义属性
- 如何使用Object.prototype将函数添加到对象构造函数
- 在Javascript - Angular的Object中添加Blob