以下代码将表单数据发布为json而不是键值对。
服务
$resource(apiPath, {
Id: '@Id',
apt_id: user_info.apt_id,
mauth_token: user_info.mauth_token,
mauth_account_id: user_info.mauth_acnt_id,
rest: 1,
}, {
save:{
method:'POST',
headers : {'Content-Type': 'application/x-www-form-urlencoded'}
}
});
控制器
.controller('BroadcastSmsSendCtrl', function($scope, $ionicLoading, $ionicActionSheet, $state, $timeout, $location, BroadcastSmsSvcs, GetUserCountHttpSvcs) {
$scope.entry = new BroadcastSmsSvcs();
$scope.doSubmit = function() {
BroadcastSmsSvcs.save({}, $scope.entry);
};
});
答案 0 :(得分:12)
AngularJs提供了一种服务,可以像序列化对象一样转换为jQuery。
而不是json序列化:{"id": 1, "name": "whatever"}
变为:id=1&name=whatever
所以你可以做到:
save:{
method: "POST",
headers : {"Content-Type": "application/x-www-form-urlencoded"},
transformRequest: function(data) {
return $httpParamSerializerJQLike(data);
}
}
注意:在您的服务中,您必须注入$httpParamSerializerJQLike
服务
答案 1 :(得分:3)
尝试将此添加到$ resource对象
headers : {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest : function(obj){
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
}
}
答案 2 :(得分:3)
在alignparentBottom
功能
.config()