使用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比较新,所以请对任何给出的代码发表评论
答案 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")