2016-10-16 3 views
0

Kann nicht herausfinden, warum dieser Fehler. Ich verwende keine JSON.parse(), die die wahrscheinliche Ursache für diesen Fehler von den meisten Posts, die ich gesehen habe, ist.Unerwartete Token u in JSON an Position 0 Winkelfeder

Ich verwende einfache Benutzerregistrierung in Winkel:

$scope.addUser = function() { 
    $scope.userData = { 
     username: $scope.user.email, 
     password: $scope.user.password 
    }; 

    auth.signup($scope.userData, successAuth, function (error) { 
     $rootScope.error = error; 
     console.log("error: " , $rootScope.error); 
    }); 
}; 

myApp.service('auth', function($http){ 
    return { 
     signup: function(data,success, error){ 
      $http.post('mvc-dispatcher/registration/', data).success(success).error(error); 
     } 
    }; 
}); 

Frühling Rest sein Backend-Service:

@RestController 
public class UserController { 
    @Autowired 
    private UserService userService; 

    @Autowired 
    private SecurityService securityService; 

    @Autowired 
    private UserValidator userValidator; 

    @RequestMapping(value = "/registration", consumes = "application/json", produces = "application/json", headers = "content-type=application/x-www-form-urlencoded", method = RequestMethod.POST) 
    public ResponseEntity registration(@RequestBody User userBean, BindingResult bindingResult, Model model) { 
     System.out.println("register 2"); 

     userValidator.validate(userBean, bindingResult); 
     HttpHeaders headers = new HttpHeaders(); 

     if (bindingResult.hasErrors()) { 
      return new ResponseEntity("user already exists", HttpStatus.CONFLICT); 
     } 

     userService.saveUser(userBean); 
     securityService.autologin(userBean.getUsername(), userBean.getPassword()); 
     return new ResponseEntity(headers, HttpStatus.CREATED); 
    } 
} 

Wenn ein Benutzer bereits registriert ist, ich bin schon eine Antwortzeichenfolge „Benutzer sendet existiert "aber in der Konsole kann ich die Fehlerreaktion nicht abfangen. Sein Drucken SyntaxError: Unexpected token u in JSON at position 0

Antwort

1

Die Funktion $ http.post() versucht wahrscheinlich, Ihren JSON zu dekodieren, weil Ihr Datentyp JSON ist und Ihr Web-Dienst application/json als Typ akzeptiert. Ich schlage vor, ein JSON-Array an Ihren Code zu übergeben.

{ 
    valid: false, 
    errors: ['User allready connected'] 
    value: [] 
} 

oder

{ 
    valid: true, 
    error: [], 
    value: [userdata] 
} 

Sie könnten einfach eine hashmap in json in Ihrem Java kodieren und sie an den Client senden.

Hofft es hilft!

  • Nic
+0

Ich tat dies und es funktionierte: 'if (bindingResult.hasErrors()) { Map Error = new HashMap(); errorResponse.put ("Fehler", "Benutzer existiert bereits"); Rückgabe neuer ResponseEntity (errorResponse, HttpStatus.CONFLICT); } ' – Satyadev

+0

Danke für den Hinweis auf hashmap – Satyadev

Verwandte Themen