robot ha scritto:
se possibile con un esempio completo con i rest fatto in java e richiamati in javascript.
Non importa (molto) la parte Java, purché la response sia JSON.
Prova questo che ho scritto, prendi il seguente codice e mettilo in un file locale es. prova.html e poi aprilo con Firefox o Chrome (non ho provato con altri browser):
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Prova</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
function richiediTempo() {
$.ajax({
url: "http://date.jsontest.com"
}).done(function(data) {
var str = data.date + " " + data.time;
$("#risultati").append($("<p>").text(str));
});
}
$(function() {
$("#pulsante").click(richiediTempo);
});
</script>
</head>
<body>
<input id="pulsante" type="button" value="Leggi tempo">
<div id="risultati"></div>
</body>
</html>
Prova innanzitutto con un'altra finestra del browser a chiedere direttamente tu a mano l'url
http://date.jsontest.co
Vedrai che quel servizio ti fornisce un piccolo JSON con 3 field.
Nel mio esempio:
1) Ho preso JQuery da una CDN, la prima che ho trovato. Ce ne sono anche altre e se vuoi puoi scaricare JQuery per "servirlo" tu dalla tua applicazione, se vuoi.
2) All'evento di ready, viene eseguito
$("#pulsante").click(richiediTempo);
Questo semplicemente aggancia l'evento di click del pulsante alla funzione richiediTempo.
3) Quando fai click sul pulsante, viene eseguita la funzione richiediTempo, essa fa la chiamata asincrona verso quel url e siccome la response è JSON, ottengo i dati "parsati" nella variabile data.
Creo la stringa con la data, poi creo un nuovo paragrafo <p> lo riempio con la stringa e poi "appendo" il paragrafo al fondo del <div>.
Prova il pulsante più volte in più secondi diversi, vedrai comparire i paragrafi con la data aggiornata. Nota che la pagina NON viene ricaricata. Questo è appunto il succo delle chiamate fatte con tecniche "AJAX".
P.S. non sono praticissimo di JQuery, spero di non aver usato qualcosa di inappropriato o obsoleto.