2017-09-04 4 views
-1

Ich baue eine RESTful API mit AngularJS, und ich blieb stecken. Ich versuche, eine GET-Anfrage zu senden, die mir eine User mit gegebenem username holt. Hier ist der Code:AngularJS - HTTP GET Anfrage mit Statuscode 302

var loginModule = angular.module('login-module', []); 


    loginModule 
     .factory('loginService',['$http','$rootScope', function($http){ 

      var factoryMethods = {}; 
      factoryMethods.login = function(username){ 
       return $http.get('http://localhost:8080/WebProjekat/webapi/users/'+username); 
      } 
      factoryMethods.setLoggedUser = function(user){ 
       $rootScope.loggedUser = user; 
      } 
      return factoryMethods; 
     }]) 
     .controller('loginController', ['$scope', '$http','loginService', function ($scope, $http, loginService){ 
       $scope.username = ''; 
       $scope.password = ''; 

       $scope.user = {}; 

       $scope.userLogin = function(){ 
        loginService.login($scope.username) 
          .then(function(response){ 

           console.log("User :" +angular.toJson(response.data)+"successfully logged in!"); 
           $scope.user = response.data; 
           loginService.setLoggedUser($scope.user); 

          },function(error){ 

           console.log("Error occured durring user authentication!"); 

          }); 
       } 

     }]); 

Aus irgendeinem Grund das Versprechen von dieser Funktion erzeugt:

factoryMethods.login = function(username){ 
        return $http.get('http://localhost:8080/WebProjekat/webapi/users/'+username); 
       } 

abgelehnt wird, und der Statuscode i bekommen ist 302. Was ich nicht verstehe, ist, warum die Umleitung tat geschehen, und warum wurden die Daten einer zweiten Callback-Funktion zugeordnet, die aufgerufen wird, wenn das Versprechen abgelehnt wird.

Ich folgte dem Ablauf der Ausführung, und Jersey Servlet findet erfolgreich die UserResource Klasse und den Dienst, den es aufrufen muss, um den Benutzer mit dem angegebenen Benutzernamen abzurufen. Hier ist der Java-Code:

/** 
    * URL: http://localhost:8030/WebProjekat/webapi/users/{userId} 
    * @param username - identification of some user that is registered on the system 
    * @param uriInfo - variable which can manipulate URL 
    * @return user with the given username 
    * @throws JsonParseException 
    * @throws JsonMappingException 
    * @throws IOException 
    */ 
    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    @Path("/{userId}") 
    public Response getUserById(@PathParam("userId") String username, @Context UriInfo uriInfo) throws JsonParseException, JsonMappingException, IOException { 
     User user = new User(); 

     List<User> listOfUsers = userService.getAllUsers(); 
     if((user = userService.getUser(username, listOfUsers))!=null) { 


      user.addLink(getUserSectionsUri(uriInfo, user), "sections"); 
      user.addLink(getSelfUri(uriInfo, user), "self"); 

      return Response.status(Status.FOUND) 
          .entity(user) 
          .build(); 
     } 

     return Response.status(Status.NOT_FOUND) 
         .build(); 
    } 

Jede Art von Hilfe wird geschätzt werden!

Antwort

0

Sie sollten nur Status.OK (200) anstelle von Status.FOUND (302) im Servlet

+0

Oh! Das ist so peinlich: D Vielen Dank, ich habe keine Ahnung, was ich gesehen habe! –

+0

Keine peinliche Beziehung, es ist nur die Wirkung neuer Augen, die es betrachten. Ist mir oft passiert =) – zameb