Passer un paramétre de javascript à spring controller
achrefBIG
Messages postés
40
Statut
Membre
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
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
-
Bonjour
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.
-
Par 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> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Essaie 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