Я хотел бы показать клиенту еще одну страницу после сбора данных с предыдущей страницы. Но мне трудно перенаправить новый URL-адрес на стороне сервера. Вот моя логика:Golang: как перенаправить на URL-адрес
- отправить запрос пользователя с POST-действием на сервер;
- функция запуска сервера saveChoice() для сохранения пользовательского ввода в базу данных;
- После ввода пользовательского ввода сервер отправляет клиенту новый URL-адрес;
- К тому времени, когда клиент получить новый URL-адрес, сервер считывает базу данных и получить сохраненные данные из
И я застрял на шаге 3 (здесь пример потока):
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 */
}
}
А вот шаблон:
<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>
могу ли я знать, как я могу перенаправить на новую страницу?
p.s. Если я положу URL на кнопку, тогда сервер не будет запускать saveChoice()
Спасибо!
Фактически эффективная часть заключается в том, чтобы добавить, если r.Method == «GET», как сказал Аруна, что предотвращает ошибку перенаправления 2 страницы – Kyle