提交表单时页面重定向

Page redirect when submitting a form

本文关键字:重定向 表单 提交      更新时间:2023-09-26

正在使用API调用获取表单,以便在提交时向mysql发送数据。我目前已经成功提交了表单,并在空白页面上显示一条消息,只是显示"工作"。我使用GO作为我的后端,并使用引导和HTML的前端

我遇到的问题是试图让页面重定向到url而不是显示该消息。我曾试图实现在HTML形式的东西,但它似乎是由我的GO应用程序中的功能覆盖

这是当前处理进程的GO函数:

func insertv4Reservation(ctx echo.Context) error {
stmt, err := ipamDB.Prepare(ipamSQL.Insertv4HostsStatement)
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()
var identifier_value = ctx.FormValue("dhcp_identifier_value")
var identifier_type = 0 //value 0 corresponds to hw-address,
var dhcp_subnet_id  = ctx.FormValue("dhcp4_subnet_id")
var ipv4_reservation = ctx.FormValue("octet1")
var hostname = ctx.FormValue("hostname")
var next_server = ctx.FormValue("dhcp4_next_server1")
//var dhcp4_ser_host = ctx.FormValue("dhcp4_server_hostname")
//var dhcp4_bf_name = ctx.FormValue("dhcp4_boot_file_name")
res, err := stmt.Exec(identifier_value, identifier_type, dhcp_subnet_id, ipv4_reservation, hostname, next_server)
if err != nil {
    log.Fatal(err)
}
lastId, err := res.LastInsertId()
if err != nil {
    log.Fatal(err)
}
rowCnt, err := res.RowsAffected()
if err != nil {
    log.Fatal(err)
}
log.Printf("ID = %d, affected = %d'n", lastId, rowCnt)
return ctx.String(http.StatusOK, "worked")

请记住,我对GO比较陌生,所以请注释任何给定的代码

正如评论中提到的,Echo有另一个名为"Redirect"的响应处理程序。源。

需要一个响应码(必须在300 &307)作为第一个参数,URL作为第二个参数。它处理报头并将适当的报头值发送给用户代理(在您的情况下可能是web浏览器)。

替换最后一行:

return ctx.String(http.StatusOK, "worked")

return ctx.Redirect(http.StatusSeeOther, "http://your.new.url.here?foo=bar")