Pourquoi suis-je de 400 bad request avec AngularJs post?

J'utilise Spring MVC et AngularJs pour créer une application web. J'ai envoyer une demande au serveur, mais je suis 400 error bad request. J'ai configurer le message convertisseur le format json dans le Ressort de la servlet fichier de configuration. Je me demande pourquoi j'obtiens cette erreur.

Voici mon angulaire de service :

save : function(user) {
    return $http({
        method: 'POST',
        url: '/app-web/user/create',
        contentType: "application/json",
        data:user
    });
}

Et sur le côté serveur, j'ai un Contrôleur Spring MVC tel que décrit ci-dessous :

@RequestMapping(value="/user/create", method= RequestMethod.POST)
@ResponseBody
public String createAccount(@RequestBody User user){
  //some logic
    return "Ok";
}

J'ai remarqué autre chose: quand j'enlève le @RequestBody dans le contrôleur, je n'ai pas une erreur 400, mais l'utilisateur est null:

@RequestMapping(value="/user/create", method= RequestMethod.POST)
@ResponseBody
public String createAccount(User user){
  //some logic
    return "Ok";
}
Le "utilisateur" de l'objet que vous êtes de passage dans la, ont une valeur ou est-elle nulle?
je ne peux pas atteindre le Contrôleur Spring MVC. Dans le Angularjs contrôleur de l'utilisateur ont de la valeur
Si vous utilisez Chrome ou IE, et ouvrir les outils de développement (F12) et de mettre un point d'arrêt sur la ligne "enregistrer : function(utilisateur) {". Exécuter et lorsque le code frappe le point d'arrêt, placez le curseur sur "l'utilisateur". une info-bulle s'affiche avec la valeur de l'élément que vous survolez. Il n'est dit nulle ou a-t-elle une valeur? Une autre chose à essayer est de regarder l'URL exacte qu'il essaye d'accès (de nouveau, en utilisant les outils de développement). L'URL exacte qu'il essaie d'accès peut être différent de celui que vous attendiez.
Losbear j'utilise firebug pour voir la valeur de l'utilisateur en angularjs côté. l'utilisateur d'avoir de la valeur. Mais lorsque la demande est envoyée au serveur j'ai 400 bad request. Quand j'enlève le @RequestBody j'arrive au Printemps Contrôleur, mais l'objet ne contient pas de valeur
ah, ok. donc, l ' "utilisateur" de l'objet ne correspond pas à l'objet utilisateur soit passé sur le côté client. Peut-être l'une des propriétés sur le côté client est nul, mais l'Utilisateur de l'objet sur le côté serveur n'est pas les valeurs null. Vérifiez également le boîtier de l'noms. MVC essaie de mapper automatiquement pour vous, mais si l'objet est trop complexe, il peut se casser facilement. En tant que dernier recours (pour les pieds) commentaire de "public String createAccount(@RequestBody de l'Utilisateur user){" et remplacer par "public String createAccount(@RequestBody string user){" et de passer une chaîne de caractères angulaire pour voir si elle reçoit.

OriginalL'auteur Pracede | 2014-10-10