繁体   English   中英

在1个POST请求中发送2个对象

[英]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对象,但是当我将数据存储在应用程序中的各种模型UserShoppingCart等中时,我想将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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM