2017-10-22 2 views
1

Hallo Ich möchte eine Zeichenfolge von meinem Angular 4 Post Anfrage an meine Java-Feder-mvc-Controller senden und den Wert zurückgeben.Angular 4 http POST Anfrage an Java Spring Controller

in Winkel 4 Funktion:

let body = 'example' 

http 
    .post('favourite', body) 
    .subscribe(
     data => { 
     console.log('favourite received'); 
     }, 
     error => { 
     console.log('an error occured'); 
     } 
    ) 

in meinem Java-Code:

@RequestMapping(value= "/favourite", method = RequestMethod.POST) 
@ResponseBody 
public void createFavourite(@RequestParam(value="body") String favourite){ 
    Favourite.setFav(favourite); 
} 

Grund mag ich theString nur senden: 'Beispiel', wie der Körper und dann erhalten, wieder als string in meinem Java-Frühling-Controller und setzen Sie es für meine Lieblings-fav-Wert, so, wenn ich dann eine Favourites.getFav() Funktion in Favoriten wird es "Beispiel" zurückgeben. Was mache ich falsch mit den Anfragen und wie kann ich es funktionieren lassen?

+0

Ich glaube, Sie verwechseln Post „Körper“ mit url params ... haben Sie einen Blick auf Dieses Angular Beispiel https://StackOverflow.com/Questions/35212341/angular2-http-Post-Request-Parameters und dann sehen, wie was Sie senden, könnte von Ihrem Java-Controller interpretiert https://StackOverflow.com/Questions/13715811/ requestparam-vs-pathvariable. Es gibt verschiedene Möglichkeiten dies zu tun, aber möglicherweise ist das, was du willst, etwas wie/favorite? Body = etwas, dem du nahe bist, aber noch nicht ganz da bist :) –

+0

Um es zum Laufen zu bringen, sollte ich etwas tun: let body = ' favorite = example 'und dann in @RequestParam (Wert = "favorite", required = false) String fav) {FavouritesetFav (fav); } Gehe ich in die richtige Richtung? – JJey

Antwort

-1

Zuerst müssen Sie http, oder httpClient injizieren. Zweitens, warum haben Sie nur "Lieblings" in Ihrer Post-Methode? Es ist falsch. Erste param jeder HTTP-Methode ist vollständigen Pfad wie: http://localhost:8080/favourite

Hier haben Sie viele Beispiele: https://angular.io/guide/http

+0

Ihre Antwort enthält viele Fragen;) Warum fügen Sie nicht einfach Kommentare hinzu, um die ursprüngliche Frage zu klären? –

+0

Yeaa, eine Menge Fragen, aber meiner Meinung nach wirklich hilfreich;) –

+0

Also um es funktionieren zu lassen, sollte ich etwas tun: let body = 'favorite = example' und dann in @RequestParam (value = "favorite", required = false)) Zeichenfolge fav) {FavouritesetFav (fav); } Gehe ich in die richtige Richtung? – JJey