提交表单时页面重定向

时间:2016-10-25 09:58:57

标签: javascript jquery html forms go

使用API​​调用获取表单以在提交时将数据发送到mysql。我目前已成功提交表单,并在空白页面上显示一条消息,只显示“工作”。我使用GO作为我的后端,并使用bootstrap和HTML作为前端

我遇到的问题是尝试将页面重定向到网址而不是显示该消息。我试图在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比较新,所以请对任何给出的代码发表评论

1 个答案:

答案 0 :(得分:0)

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

它需要一个响应代码(必须在300和307之间)作为第一个参数,URL作为第二个参数。它处理标题并将相应的标题值发送到User-Agent(在您的情况下可能是Web浏览器)。

替换最后一行:

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

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