Warum bin ich immer 400 bad request mit AngularJs post?

Ich benutze Spring MVC und AngularJs um eine Webanwendung zu erstellen. Ich sende eine Anfrage an den server, aber ich bin immer 400 error bad request. Ich konfigurieren Sie message-Konverter für das json-format in der Spring-servlet-Konfigurationsdatei. Ich Frage mich, warum bin ich immer diese Fehlermeldung.

Hier ist mein Winkel-service :

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

- Und auf der server Seite habe ich einen 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 noch etwas anderes: wenn ich entfernen Sie die @RequestBody im controller habe ich nicht einen 400-Fehler, sondern der Benutzer ist null:

@RequestMapping(value="/user/create", method= RequestMethod.POST)
@ResponseBody
public String createAccount(User user){
  //some logic
    return "Ok";
}
  • Die "user" - Objekt, das Sie passieren, einen Wert haben oder ist es null?
  • ich kann nicht erreichen, das Spring MVC-Controller. In der Angularjs-controller-user-Wert haben
  • Wenn Sie mit Chrome oder IE und öffnen Sie die developer tools (F12), und legen Sie einen Haltepunkt in der Zeile "speichern : function(user) {". Starten Sie es und, wenn der code zuvor auf den Haltepunkt, bewegen Sie den Mauszeiger über "Benutzer". erscheint ein tooltip mit dem Wert des Elements, das Sie überfahren. Es bedeutet null oder hat es einen Wert? Eine andere Sache, zu versuchen, auf der Suche auf die genaue URL, die es zuzugreifen versucht (wieder mit Entwickler-tools). Die genaue URL, die Sie versucht zu zugreifen möglicherweise anders, als Sie erwartet hatten.
  • Losbear ich verwende firebug, um zu sehen, den Wert der Benutzer in angularjs Seite. Benutzer haben Wert. Aber wenn die Anforderung zum server gesendet ich habe 400 bad request. Wenn ich entfernen Sie die @RequestBody ich Erreiche den Spring Controller als user-Objekt enthält nicht Wert
  • ah, ok. also die "user" - Objekt entspricht nicht dem user-Objekt übergeben wird auf die clientseitigen. Vielleicht eine der Eigenschaften, die auf die clientseitigen null ist aber das User-Objekt auf der server-Seite ist keine null-Werte. Überprüfen Sie auch das Gehäuse der Namen. MVC versucht, Karte wird es automatisch für Sie, aber wenn das Objekt ist zu Komplex, es kann leicht brechen. Als Letzte Möglichkeit (für den Kick), Kommentar, "public String createAccount(@RequestBody User User){" ersetzen und mit "public String createAccount(@RequestBody string user){" und geben Sie eine Zeichenfolge mit eckigen, um zu sehen, wenn es erhält dass.
  • Das problem wurde über den Benutzer bilden. Ich hatte lastname, firstname, email, password, password1, aber der Benutzer Java-Objekt nicht enthält password1 Attribute. Dank
  • warum gehst du nicht fügen Sie Ihre eigenen Antwort, und entfernen Sie alle verwirrend xml-Teile aus der Frage, die nicht relativ?
  • habe das gleiche problem, Eingaben, die zeigen, auf firebug ist { "id": null, "name": "qweqweqwe", "Benutzer": { "id": 3, "username": "Kaminee", "password": "1234", "email": "kim@mail .com", "Adresse": "bhumkar ", "country": { "countryId": 1, "countryName": "Indien" } } } Und Mein Modell enthält genau die gleichen Felder.

InformationsquelleAutor Pracede | 2014-10-10
Schreibe einen Kommentar