我使用Ruby on Rails创建了一个基本API。每当我尝试从AngularJS中的表单发送数据时,我都会在Rails服务器中收到此消息:
group_child = Groups.objects.get(subgroup = kwargs["group_id"])
if group_child is None:
group = get_object_or_404(Groups, group = kwargs["group_id"])
group.logic_delete()
messages.success(request, "Deleted successfull")
else:
messages.error(request, "It has elements asociated")
因此,它在数据库中创建空记录。
这是AngularJS中用于发送数据的控制器:
Parameters: {"{\"content\":\"message\"}"=>nil}
答案 0 :(得分:3)
您需要在以x-www-form-urlencoded
从文档中复制的示例
.controller(function($http, $httpParamSerializerJQLike) {
//...
$http({
url: myUrl,
method: 'POST',
data: $httpParamSerializerJQLike(myData),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
});
或者使用$http
的默认值,它将请求正文中的JSON发送为application/json
:
$http.post(myurl, data).then(...;
答案 1 :(得分:2)
更改此行:
headers : {'Content-Type': 'application/x-www-form-urlencoded'}
为:
headers : {'Content-Type': 'application/json'}
如果它不是这样的话,还要对Json进行编码:
data : angular.toJson($scope.message), //forms user object
这样您就可以将正确的JSON格式数据发送到API,确保您的API接受Json编码数据以防万一。