2014-07-16 4 views
0

각도를 사용하고 외부 API에 ($resource을 사용하여) 요청을 보내려고하고 있지만 현재 2 개의 다른 개체로 보내야하는 데이터가 있습니다. 현재는 1 만 보내고 있습니다. API에는 모든 요청에 ​​auth_token을 포함하는 사용자 별 작업이 필요합니다. auth_token없이1 POST 요청에서 2 개의 개체 보내기

요청은 다음과 같을 것이다 :

APIShop.reg(Cart.data, 
function(success) {}, 
function(failure) {} 
); 

APIShop

는 다음과 같습니다 :하지만 내가 필요 {country: 'US', city: 'Seattle, WA'}

:

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 모습 객체입니다 동일한 요청에있는 User 개체의 {auth_token: '432078e36c7a42e3c6febdac95f38c1549de6218'}도 추가하십시오. 성. 즉각적인 해결책은 개체에 auth_token 필드를 추가하는 것이지만이 데이터를 다양한 모델 User, ShoppingCart 등의 응용 프로그램에 저장하므로 User 개체에 auth_token을 유지하고 싶습니다.

나는이 일을 기대하지 않았다
APIShop.reg(Cart.data, User.auth_token 
function(success) {}, 
function(failure) {} 
); 

을 수행했는데, 그것은하지 않았다. auth_token은 Query String Parameters 대신 Request Payload으로 표시됩니다.

머지 않아 유지 보수의 악몽이 될 것이므로 {country: Cart.data.country, city: Cart.data.city, auth_token: '432078e36c7a42e3c6febdac95f38c1549de6218'}과 같은 것을 보내지 마십시오 (객체 전송과 반대).

토큰을 Cart에 추가하지 않고 두 정보를 모두 보내거나 (앞으로 모든 객체에 추가해야 함) 객체의 모든 필드를 나열하는 방법은 무엇입니까?

답변

0

리팩터링 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) {} 
); 
+0

난 그냥에'APIShop'를 업데이트 시도 : ''등록 번호 '{방법 : 'POST', isArray : true, params : {service : 'account', 액션 : 'order'}}''('isArray'는 'true'로 변경됩니다. 이제 모든 것이'Query String Parameters' 대신'Request Payload'로 나타납니다. – theintellects

+0

외부 API를 제어 할 수 없기 때문에 Angular가 배열에서'['및']'를 버리고 내용 만 전송할 수있는 방법이 없을까요? – theintellects

관련 문제