gpt4 book ai didi

http - 进行多次 response.WriteHeader 调用

转载 作者:数据小太阳 更新时间:2023-10-29 03:02:58 26 4
gpt4 key购买 nike

所以我正在编写一个基本的网络应用程序,但在成功登录后无法重定向用户。代码是:

t, err := template.ParseFiles("home.html")
if err != nil {
log.Fatal("template.ParseFiles: ", err)
}

err = t.Execute(w, nil)
if err != nil {
log.Fatal("t.Execute: ", err)
}

if r.Method == "POST" {
r.ParseForm()
user := r.FormValue("username")
pass := r.FormValue("password")

if checkLogin(user, pass) {
loggedIn = true
http.Redirect(w, r, "/home", 302)
}
}

错误信息是:“http: multiple response.WriteHeader calls”。

我的问题是,如果不调用设置 header 的 t.Execute,我看不到提供包含登录表单的 html 文件的方法。

如何显示登录页面并仍然能够重定向到不同的页面?

最佳答案

您正在编写(使用 w),然后尝试使用 302 header 重定向进行重定向(也使用 w)。

您只能发送一次 header ,如果您开始写入 w,它会假定一个 200 header (确定)

此外,最好在写入 ResponseWriter (w) 之前检查 http.Method

并且,记得在重定向或将 ResponseWriter 和 Request 对移交给另一个函数后返回!

希望这对您有所帮助。

关于http - 进行多次 response.WriteHeader 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com