Bonjour,
je suis débutante sur angular2 , je veux moudifier la table "User" mais je je rencontre un erreur "Required String parameter 'resp' is not present"
j'utilise Spring MVC pour développer des Web Services
@RequestMapping(value="/update", method = {RequestMethod.GET,RequestMethod.POST})around @ResponseStatus(value=HttpStatus.OK)around public @ResponseBody User updateUser(around @RequestParam(value="resp") String resp){around User user=new User();around userRepository.update(user);around return user;around }
et voila l'invocation du web service coté angular :
updateUsers(user:Users){around var data=JSON.stringify({resp: "abc"});around var headers = new Headers();around headers.append('Content-Type', 'application/json');around this.http.post('http://localhost:8080/rest-ws/api/update', data, { headers: headers })around .map(res=> res.json()).subscribe(res => {around var result = res;around console.log("result : ",result);around });around around}
Voila je rencontre un petit problème avec mon code.
Required String parameter 'resp' is not present. quand je clique sur bouton enregistrer.
aidez moi svp
Merci
Salut,
Tout d'abord ça serait cool de mettre le code bien formatté, c'est plus facile pour lire ;) .
L'erreur vient du fait que tu envois au serveur Java un string. Alors que lui attend un objet JSON avec comme attribut : resp
.
Dans ton code côté client il te faut donc pas formatter ton objet data
en string mais le laisser en tant qu'objet, comme ceci :
var data={resp: "abc");
bonjour workfel,
oui t'a raison le code n'est pas assez claire. Merci pour votre réponse
en faite je modifie mon code, maintenant j'envoie String " var objectToSend='resp=test';" au serveur et le format de header: " headers.append('Content-Type', 'application/x-www-form-urlencoded');" et ç'a résolu le problème .
voici le modifcation :
updateUsers(user:Users){
var objectToSend='resp=test';
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.http.post('http://localhost:8080/rest-ws/api/update',objectToSend , { headers: headers })
.map(res=> res.json()).subscribe(res => {
var result = res;
console.log("result : ",result);
});
}