AngularJS 请求负载始终为空
AngularJS Request payload is always empty
我创建了一个 Angular 资源,可以将 POST 数据发送到 Web 服务。这是我的工厂:
appServices.factory('Foo', function($resource) {
var data = $resource(
'http://localhost:3000/api/v1/foo.json',
{},
{
'save': {
method: 'POST',
cache: false
}
});
return data;
});
这是我的控制器:
appControllers.controller('FooCtrl', function($scope, Foo, $location) {
$scope.memberData = {};
$scope.create = function() {
var member = new Foo();
member.$save( {}, { bar: bar });
$location.url("/");
};
});
当我在客户端提交表单时,它 returns 状态为 500。查看 Firebug,我可以看到我的 POST 数据负载由于某种原因始终为空。
我做错了什么?
PS。我已将其添加到我的配置中:$httpProvider.defaults.headers.post['Content-Type'] = 'application/json; charset=utf-8';
如果您想向 member
资源发出 POST
请求,您可以使用 save()
(没有 $
)并将您的正文作为第一个参数:
Foo.save({bar: 'bar'}, function () {
// Callback
});
然而,当创建一个新的资源实例时,它被扩充了一个 $save()
方法(注意 $
)。当您调用此方法时,实例本身作为正文发送。因此,您应该将代码更改为:
var member = new Foo();
member['bar'] = 'bar';
member.$save(function () {
// Callback
});
查看此 article 了解更多信息。
我创建了一个 Angular 资源,可以将 POST 数据发送到 Web 服务。这是我的工厂:
appServices.factory('Foo', function($resource) {
var data = $resource(
'http://localhost:3000/api/v1/foo.json',
{},
{
'save': {
method: 'POST',
cache: false
}
});
return data;
});
这是我的控制器:
appControllers.controller('FooCtrl', function($scope, Foo, $location) {
$scope.memberData = {};
$scope.create = function() {
var member = new Foo();
member.$save( {}, { bar: bar });
$location.url("/");
};
});
当我在客户端提交表单时,它 returns 状态为 500。查看 Firebug,我可以看到我的 POST 数据负载由于某种原因始终为空。
我做错了什么?
PS。我已将其添加到我的配置中:$httpProvider.defaults.headers.post['Content-Type'] = 'application/json; charset=utf-8';
如果您想向 member
资源发出 POST
请求,您可以使用 save()
(没有 $
)并将您的正文作为第一个参数:
Foo.save({bar: 'bar'}, function () {
// Callback
});
然而,当创建一个新的资源实例时,它被扩充了一个 $save()
方法(注意 $
)。当您调用此方法时,实例本身作为正文发送。因此,您应该将代码更改为:
var member = new Foo();
member['bar'] = 'bar';
member.$save(function () {
// Callback
});
查看此 article 了解更多信息。