Post 参数未发送到服务器

Post Params Not Sent to Server

我有一个简单的 $resource 工厂。

.factory('Order', order)

order.$inject = ['$resource', "ApiEndpoint", "UserRecord"];

function order($resource, ApiEndpoint, UserRecord) {
  return $resource(ApiEndpoint.url + 'orders.json', {}, {
    create: {method: 'POST', url: ApiEndpoint.url + 'orders.json'}
  });
}

这是我正在执行的代码。

var params = {product_id: 32342, variant_id: 536341};

Order.create(params, function( resp ) {
  console.log("success");
});

当我 运行 create 参数没有通过时。没有参数通过。为什么会这样,我该如何解决?

根据 docs:

The action methods on the class object or instance object can be invoked with the following parameters:

HTTP GET "class" actions: Resource.action([parameters], [success], [error])
non-GET "class" actions: Resource.action([parameters], postData, [success], [error])
non-GET instance actions: instance.$action([parameters], [success], [error])

所以你可以试试:

var params = {product_id: 32342, variant_id: 536341};

Order.create({},params, function( resp ) {
  console.log("success");
});

第一个参数用于填写url的参数(例如/foo/:id需要{id: 324}作为第一个参数)

更新:

得到的参数顺序不正确:

var params = {product_id: 32342, variant_id: 536341};

Order.create(params,{}, function( resp ) {
  console.log("success");
});

我意识到我缺少第二个参数,POST-DATA

Order.create(params, {}, function( resp ) {
  console.log("success");
});