邮件参数未发送到服务器

时间:2015-07-28 18:45:52

标签: javascript angularjs http-headers url-parameters ngresource

我有一个简单的$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时,参数不能通过。没有参数传递。为什么会这样,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

根据docs

  

可以使用以下参数调用类对象或实例对象上的操作方法:

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");
});

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

<强>更新

参数顺序不正确:

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

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

答案 1 :(得分:-1)

我意识到我错过了第二个论点POST-DATA

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