Vorrei mostrare al cliente un'altra pagina dopo che i dati sono stati raccolti dalla pagina precedente. Ma ho problemi a reindirizzare il nuovo URL sul lato server. Ecco la mia logica:Golang: come reindirizzare a un url
- inviare l'input dell'utente con l'azione POST al server;
- funzione di esecuzione del server saveChoice() per salvare l'input dell'utente in un database;
- Dopo aver salvato l'input dell'utente, il server invia un nuovo URL al client;
- Con il tempo il cliente ottenere il nuovo URL, server legge il database e ottenere i dati salvati fuori
E mi sono bloccato sulla fase 3 (ecco un esempio del flusso):
type Stuff struct{
List []string
}
func checkcheck(w http.ResponseWriter, r *http.Request) {
sinfo := Stuff{
List: some_slice
}
t, err := template.New("").Parse(tpl_ds)
checkErr(err)
err = r.ParseForm()
checkErr(err)
err = t.Execute(w, sinfo)
checkErr(err)
if r.Method == "POST" {
saveChoice(r.Form["choices"])
/* step 3: make user open another URL */
}
}
E qui è il modello:
<html>
<script>
$(function() {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
data: $('form').serialize(),
});
});
});
</script>
<body>
<form method="POST">
{{range .List}}
<input type="checkbox" name="choices" value="{{.}}"> <span>{{.}}</span><br>
{{end}}
<input type="submit" value="Submit">
</form>
</body>
</html>
posso sapere come posso reindirizzare a una nuova pagina?
p.s. Se inserisco l'URL sul pulsante, il server non eseguirà saveChoice()
Grazie!
In realtà la parte efficace è aggiungere se r.Method == "GET" come ha detto Aruna, che impedisce l'errore di reindirizzamento di 2 pagine – Kyle