【问题标题】:Page redirect when submitting a form提交表单时页面重定向
【发布时间】:2016-10-25 09:58:56
【问题描述】:

使用 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 文档,echo.Context 上似乎有一个函数:Redirect(int, string) error

标签: javascript jquery html forms go


【解决方案1】:

如 cmets 中所述,Echo 有另一个称为“重定向”的响应处理程序。 Source.

它将响应代码(必须介于 300 和 307 之间)作为第一个参数,将 URL 作为第二个参数。它处理标头并将适当的标头值发送到用户代理(在您的情况下可能是网络浏览器)。

替换最后一行:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2020-02-18
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多