2017-12-22 1 views
0

나는이 노선과 각 응용 프로그램이 있습니다 자바 백엔드에서 angularjs 매개 변수를 얻는 방법은 무엇입니까?

$routeProvider 

    // Home screen 
    .when('/', { 
     title   : 'APP.NAME', 
     bodyClassName : 'home', 
     templateUrl : 'app/custom/templates/customTemplate.html', 
     controller : 'customTemplateController', 
     resolve  : { unauthorizeRequest: unauthorizeRequest } 
    }) 

    .when('/connect/:connectionToken', { 
     bodyClassName : 'client', 
     templateUrl : 'app/client/templates/client.html', 
     controller : 'clientController', 
     resolve  : { updateToken: updateToken} 
    }) 
    .otherwise({ 
     resolve  : { unauthorizeRequest: unauthorizeRequest } 
    }); 

및 자바 측

:

@POST 
public APIAuthenticationResult createToken(
     @FormParam("connectionToken") String token, 
     @Context HttpServletRequest consumedRequest, 
     MultivaluedMap<String, String> parameters) 

     HttpServletRequest request = new APIRequest(consumedRequest, parameters); 

String token = request.getParameter("connectionToken"); 

문제는 그 나는 같은 URL을 사용하는 경우 :

http://localhost:8090/connect/{connectionToken here} 

I 자바 측에서 항상 null을 얻는다. 내가 같은 URL을 사용하는 경우 :

올바른 경로를 공격하지 않는 각도
http://localhost:8090/connect/?connectionToken={connectionToken here} 

, 그것은 otherwise 경로로 이동하지만, 자바 측에서 나는 request.getParameter를 통해 토큰을 얻을 수 있습니다.

어떻게 처리 할 수 ​​있습니까? 당신이 스프링 사용하는 경우,

@GET 
    @Produces(MediaType.APPLICATION_JSON) 
    @Path("/connect/{connectionToken}") 
    public Response doStuff(@PathParam("connectionToken") String token){ 
     System.out.println(token); 
     //stuff.. 
    } 

또는 :

+0

확실하지 멀리 아래로 당신의 솔루션을하지만 당신이 사용할 수를 HTTP 헤더 이런 종류의 정보 (연결 토큰)를 전달 하시겠습니까? 어쨌든 그것은 URL에 속한 것으로 보이지 않습니다. – fasfsfgs

답변

0

시도는 다음과 같이 컨트롤러 방법을 정의 할 수

@RequestMapping(value="/connect/{connectionToken}", method = RequestMethod.GET, produces="application/json") 
public Response getOrderEquipment(@PathVariable("connectionToken") String token){ 
    System.out.println(token); 
    //stuff.. 
} 
+0

문제는 내가 그 메소드에 대한 HttpServletRequest에 액세스 할 수 있다는 것입니다. – gog

+0

자바 메소드를 볼 수 있도록 내 게시물을 편집했습니다. – gog

+0

FormParam에서 connectionToken을 가져 오지만 토큰이 PathParameter입니다. 시도해보기 : [AT] FormParam 대신 [AT] PathParam – Innet

관련 문제