2014-11-05 3 views
0

저는 AngularJS에 처음 왔고 그것에 손을 댑니다.

서버에 데이터를 보내고 REST 서비스 중 하나에서 DTO에 매핑하려고합니다. 그래서 나는

  saveUserUrl = "http://localhost:8080/App/rest/UserManager/saveUser"; 

     var results = []; 
     for (var i = $scope.users.length; i--;) { 
      var user = $scope.users[i]; 
      results.push(user); 
     } 
     $http.post(saveUserUrl, { 
       data: results, 
       headers: {'Content-Type': undefined,'Authorization':$routeParams.auth }, 
       transformRequest: function(data, headersGetterFunction) { 
        return data; 
       } 
      }). 
      success(function(data, status, headers, config) { 
       if(status == 203) { 
        alert("Session Timed out, Please Login Again"); 
        $window.location=getContextFromURL(); 
       }else{ 
        alert("user saved success"); 
       } 
      }). 
      error(function(data, status, headers, config) { 
       alert("user saved failure"); 
      }); 

페이로드는 모든 것이 잘 작동됩니다

{"data": 
    [{"id":2,"name":"Agent3","extn":3,"group":1,"groupName":"Agent","isNew":false}, 
    {"id":1,"name":"Agent2","extn":"2","group":1,"groupName":"Agent","isNew":false} 
    ], 
"headers": 
    {"Authorization":"5825ccb2-d28b-47e6-87a8-0b31f8ec9a78"} 
} 

REST 서비스

@POST 
@Path("/saveUser") 
@Produces({ MediaType.APPLICATION_JSON}) 
@Consumes({ MediaType.APPLICATION_JSON}) 
public Response saveUser(@HeaderParam(HttpHeaders.AUTHORIZATION) String authorization,@Context HttpServletRequest req, DBUserEntity dbUser ) { 
    System.out.println("User iiss :" + dbUser); 
    ResponseBuilder responseBuilder = Response.status(200); 
    //System.out.println("zipStatus :"+zipStatus); 
    //TODO 
    return responseBuilder.entity(null).build(); 
} 

로 가고,이 방법으로 그것을했다.

는 지금은 모든 서버 호출에 대한 일반화 된 함수로이 방법을 시도하고
$http({ 
      url: urlBase+requestMapping, 
      method: method, 
      data: formData, 
      headers: { 
       'Content-Type': contentType, 
       'Authorization':$routeParams.auth 
      }, 
      transformRequest: function(data, headersGetterFunction) { 
       return data; // do nothing! FormData is very good! 
      } 
     }); 

을 작동이 중지 그리고 그것은 작동을 멈췄습니다. 페이로드가는대로 : 나는 JSON.stringify을 시도

[object Object],[object Object] 

후 나는 $ http.post 대 $ HTTP의 올바른 작동을 잘 모릅니다

[ 
    { 
     "id": 2, 
     "name": "Agent23", 
     "extn": 23, 
     "group": 1, 
     "groupName": "Agent", 
     "isNew": false, 
     "$$hashKey": "object:11" 
    }, 
    { 
     "id": 1, 
     "name": "Agent22", 
     "extn": "22", 
     "group": 1, 
     "groupName": "Agent", 
     "isNew": false, 
     "$$hashKey": "object:10" 
    } 
] 

로 전달, 특정 일이 그 데이터를 전송할 때마다 각별한주의를 기울여야합니다.

+0

정확히 같은 결과를 산출한다

$http({ url: saveUserUrl, method: 'POST', data: results, headers: {'Content-Type': undefined,'Authorization':$routeParams.auth }, transformRequest: function(data, headersGetterFunction) { return data; } }); 

를 실행하는 예에서 ? –

답변

0

$http.post$http에 대한 바로 가기 방법이며 method:'POST'입니다. 혹시이의 원인을 찾았어요 원래 $http.post 요청

+0

그것은 동일한 페이로드를 전송하지 않거나 잘못하고 있습니다. 페이로드도 게시합니다. 전송하지 않습니다. – Jayesh

+0

URL이 맞습니까? 서버로부터 응답을 얻었습니까? – yarons

+0

동일한 URL은 둘 모두에 해당하며, 첫 번째 경우에는 작동하고 두 번째 경우에는 페이로드가 다르기 때문에 적절한 REST 서비스 메소드에 매핑 할 수 없습니다. – Jayesh

관련 문제