簡體   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