[英]Sending 2 objects in 1 POST request
我正在使用Angular并尝试向外部API发送请求(使用$resource
),但是我需要在2个不同的对象中发送数据,而我目前仅发送1个。该API需要用户特定的操作才能包含auth_token
与每个请求。
没有auth_token
,请求将如下所示:
APIShop.reg(Cart.data,
function(success) {},
function(failure) {}
);
APIShop
看起来像这样:
app.provider('APIShop', function(API_URL) {
this.$get = ['$resource', function($resource) {
var Campaign = $resource(API_URL.url + API_URL.loc + ':service/:action/', {service: '@service', action: '@action'}, {
'reg': {method:'POST', isArray: false, params: {service: 'account', action: 'order'}},
'update': {method:'PUT', isArray: false, params: {service: 'account', action: 'order'}}
});
return Campaign;
}];
});
Cart.data
是一个看起来像以下对象: {country: 'US', city: 'Seattle, WA'}
但我还需要在同一请求中从User
对象添加{auth_token: '432078e36c7a42e3c6febdac95f38c1549de6218'}
。 立即的解决方案可能是将auth_token
字段添加到Cart
对象,但是当我将数据存储在应用程序中的各种模型User
, ShoppingCart
等中时,我想将auth_token保留在User
对象中。
我试着做
APIShop.reg(Cart.data, User.auth_token
function(success) {},
function(failure) {}
);
没想到它会工作,而且没有。 auth_token最终显示为Request Payload
而不是Query String Parameters
。
我也不想直接发送类似{country: Cart.data.country, city: Cart.data.city, auth_token: '432078e36c7a42e3c6febdac95f38c1549de6218'}
(而不是发送对象),因为那样会更快地成为维护噩梦。或更高版本。
我如何发送这两条信息而不将令牌添加到Cart
(因为这意味着我需要将其添加到以后的每个对象中)或列出对象的所有字段?
重构APIShop以接收数组:
APIShop.reg([Cart.data, User.auth_token],
function(success) {},
function(failure) {}
);
或重构它以接收映射对象:
APIShop.reg({ data : Cart.data, auth : User.auth_token },
function(success) {},
function(failure) {}
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.