我有这个简单的数组,我需要向后端控制器发出一个post请求,但每次我得到一个空数组[]
这是我的html:
<div class="input-container" ng-repeat="lang in languages">
<label for="tagName">{{:: 'tagName' | translate }}</label>
<input placeholder="{{:: 'tagName' | translate }}" id="tagName" type="text" ng-model="translations[lang]">
</div>
这是我的JS:
$scope.createNewTag = function () {
console.log($scope.translations);
var data = $scope.translations;
var method = 'post';
var url = './tags';
$http.post(url,data);
};
console.log($scope.translations);
打印:[en:"hello", it:"ciao"]
但是当我在Chrome控制台中看到请求playload为空时,在我的控制器中我得到一个空数组。
我错过了什么?
答案 0 :(得分:0)
你忘了解决电话会议的承诺,否则你将无法处理回复。
?read.table
https://docs.angularjs.org/api/ng/service/ $ HTTP
关于空的有效负载,我会查看代码以检查是否有任何$http.post('/someUrl', data)
.then(function(resp){
//success
}), function(err){
//catch exception
});
拦截器在触发之前操纵请求,也许您在那里更改了http
标头并且Angular无法再次序列化数据。
也许这可以帮到你:
Angularjs $http POST request empty array
编辑:我看到你传递一个数组作为参数,但content-type
规范声明它必须是一个键值对对象,尝试将数组包装在一个对象
$http