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");
});
我有一个简单的 $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");
});