我有一个非常奇怪的输出......让我先发布我的代码然后我会解释:
在我声明的主要功能下
manageMux.HandleFunc("/info", info)
首先我登录并从“/login”重定向到页面“/”:
func login(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
t, err := template.ParseFiles("manage/login.html")
checkError(err)
t.Execute(w, nil)
} else { //POST
r.ParseForm()
//do some authentications here
http.Redirect(w, r, "/", http.StatusFound)
}
}
然后我从当前页面“/”(只有按钮)重定向到另一个页面“/info”:
func manage(w http.ResponseWriter, r *http.Request) {
t, err := template.ParseFiles("manage/manage.html")
checkError(err)
t.Execute(w, nil)
r.ParseForm()
if r.Form["Button"] != nil { //to get only POST actions from buttons
if r.Form["Button"][0] == "Log" {
http.Redirect(w, r, "/info", http.StatusFound)
}
}
}
最后,我做了一个模板,想在客户端展示:
const tpl=`stuff inside`
type InfoDefault struct {
//stuff inside
}
func info(w http.ResponseWriter, r *http.Request) {
info := InfoDefault{
//stuff inside
}
t, err := template.New("info").Parse(tpl)
checkError(err)
err = t.Execute(os.Stdout, info)
checkError(err)
}
现在,奇怪的是,当我单击页面“/”上的按钮时,出现错误“http:multiple response.WriteHeader 调用”。同时,我的页面底部显示了一个名为“found”的链接(奇怪!),当我单击“found”链接时,我将所有解析的模板打印在服务器端而不是网页上。
有谁知道为什么...?以及如何修复错误并在客户端网页上打印内容?谢谢!!!
临摹微笑
HUX布斯
相关分类