2014-10-10 8 views
7

verwende ich Spring MVC und AngularJS eine Web-Anwendung zu erstellen. Ich sende eine Anfrage an den Server, aber ich bekomme 400 error bad request. Ich konfiguriere den Nachrichtenkonverter für das JSON-Format in der Spring-Servlet-Konfigurationsdatei. Ich frage mich, warum ich diesen Fehler bekomme.Warum erhalte ich bei AngularJs Post 400 schlechte Anfragen?

Hier ist mein Winkelservice:

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

Und auf der Server-Seite habe ich ein Spring MVC-Controller, wie unten beschrieben:

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

Ich bemerkte etwas anderes: Wenn ich entfernen Sie die @RequestBody in der Controller Ich habe keine 400 Fehler, aber der Benutzer ist null:

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

Hat die „user“ Objekt, das Sie in sind vorbei, haben einen Wert oder ist es null? – Losbear

+0

Ich kann den Spring MVC Controller nicht erreichen. Im AngularJS Controller Benutzer haben Wert – Pracede

+0

Wenn Sie Chrome oder Internet Explorer verwenden, und öffnen Sie die Entwicklertools (F12) und einen Haltepunkt setzen auf die Zeile „speichern: function (user) {“. Führen Sie es aus, und wenn der Code den Haltepunkt erreicht, bewegen Sie den Mauszeiger über "Benutzer". Ein Tooltip wird mit dem Wert des Elements angezeigt, über dem Sie den Mauszeiger halten. Sagt es null oder hat es einen Wert? Eine andere Sache, die man ausprobieren sollte, ist die genaue URL, auf die zugegriffen werden soll (wiederum unter Verwendung von Entwicklertools). Die genaue URL, auf die zugegriffen werden soll, ist möglicherweise anders als erwartet. – Losbear

Antwort

4

Das Problem war über das Benutzerformular. Ich hatte Nachname, Vorname, E-Mail, Passwort, password1, aber das Benutzer-Java-Objekt enthält nicht password1-Attribute. Wenn JSON-Daten, die von der Anforderung bereitgestellt werden, nicht mit dem Java-Objekt übereinstimmen, kann der JsonConverter keine Daten mit dem Java-Objekt abgleichen.

+0

Froh, dass Sie es herausgefunden haben! – Losbear

+0

@Pracede ich gleiches Problem habe, Eingang, der auf Firebug zeigt ist { "id": null, "name": "qweqweqwe", "Benutzer": { "id": 3, "username": "Kaminee", "Passwort": "1234", "E-Mail": "kim @ mail .com "," Adresse ":" bhumkar "," Land ": {" countryId ": 1," countryName ":" Indien "}}} – Kamini

Verwandte Themen