Passer un paramétre de javascript à spring controller
Bonjour,
Je bloque sur un problème depuis plus que 3 jours. J'aimerais envoyer un paramétre de javascript vers un controleur spring. Mais j'obtiens toujours cette erreur: jquery.min.js:5 POST http://localhost:8080/geolocalisations/getLocations 403
Voici le code:
et ç'est mon code dans le controleur:
Merci d'avance
Je bloque sur un problème depuis plus que 3 jours. J'aimerais envoyer un paramétre de javascript vers un controleur spring. Mais j'obtiens toujours cette erreur: jquery.min.js:5 POST http://localhost:8080/geolocalisations/getLocations 403
Voici le code:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
var lat ="ss";
$.ajax({
url: "/geolocalisations/getLocations",
type: 'POST',
data: lat,
dataType: "html",
contentType: 'application/json',
mimeType: 'application/json',
success: function(data){
console.log(data);
return false; }
});
</script>
et ç'est mon code dans le controleur:
@RequestMapping(value="/geolocalisations/getLocations",method = { RequestMethod.GET, RequestMethod.POST }, produces = MediaType.APPLICATION_JSON_VALUE)
public String getLocations(@RequestParam(value="data", required = false) String data)
{ System.out.println("coming in controller " +data );
return "geolocation"; }
Merci d'avance
Configuration: Windows / Chrome 90.0.4430.85
10 réponses
-
ModérateurBonjour
Le message Erreur 403, ou "accès interdit" indique que le serveur refuse d'exécuter une requête qu'il a pourtant comprise. Il s'agit d'une erreur http qui indique purement et simplement un accès refusé.
Ca ne semble donc pas être un souci côté JavaScript.
-
Merci pour votre réponse, est ce que vous avez une idée comment résoudre ce problème? j'ai cherché dans plusieurs pages, mais sans succés.
-
ModérateurPar contre dans ton appel Ajax, tu demandes une réponse au format JSON.
Or ce n'est pas le cas dans la réponse que tu envoies.
-
J'ai changé comme suit, mais l'erreur persiste
<script> var lat = {"lat": "lat"}; $.ajax({ url: "/geolocalisations/getLocations", type: 'POST', data: lat, dataType: "html", contentType: 'application/json', mimeType: 'application/json', success: function(data){ console.log(data); return false; } }); </script> -
C'est bon, j'ai retiré mais le problème persiste
-
ModérateurEssaie de voir du côté du CSRF
protected void configure (HttpSecurity http) throws Exception { http.csrf().disable(); }
-
Est ce qu'il faut ajouter cette méthode dans le contrôleur?
-
Car je suis encore débutant, d'après ce que j'ai cherché il faut la mettre dans une classe de configuration
-
C'est bon, l'erreur de 403 a été éliminée, par contre une nouvelle erreur est apparue, en éliminant l'option required=false.
There was an unexpected error (type=Bad Request, status=400).
Required request parameter 'data' for method parameter type String is not present
org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'data' for method parameter type String is not present
-
non parce que j'ai essayé avec data dans javascript mais la même erreur persiste. Je bloque vraiment sur ce pb
-
-
Modérateur@achrefBIGJe n'ai jamais dit que ça ne venait pas du JavaScript... Je t'ai dit qu'en l'état actuel de ton code le nom de la variable que tu envoies s'appelle lat. ... Et non pas data...
-