0
我已經在這個代碼我正在重定向到login.html的寫了一小段代碼中去如何發送變量及其值的HTML
func loginHandler(w http.ResponseWriter, r *http.Request) {
log.Println("loginHandler")
log.Println("request url is", r.RequestURI)
log.Println("request method", r.Method)
requestbody, _ := ioutil.ReadAll(r.Body)
log.Println("request body is", string(requestbody))
if r.Method == "POST" {
us, err := globalSessions.SessionStart(w, r)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
us.Set("LoggedInUserID", "000000")
w.Header().Set("Location", "/auth")
w.WriteHeader(http.StatusFound)
return
}
outputHTML(w, r, "static/login.html")
}
func outputHTML(w http.ResponseWriter, req *http.Request, filename string) {
\t log.Println("outputHTML")
\t requestbody, _ := ioutil.ReadAll(req.Body)
\t log.Println("request body is", string(requestbody))
\t log.Println("request body is", requestbody)
\t file, err := os.Open(filename)
\t if err != nil {
\t \t http.Error(w, err.Error(), 500)
\t \t return
\t }
\t defer file.Close()
\t fi, _ := file.Stat()
\t http.ServeContent(w, req, file.Name(), fi.ModTime(), file)
}
。現在我想發送一個變量,讓它成爲一些名爲testvariable的字符串,並將其值賦給login.html。
如何重定向? outputHTML == http.Redirect()?如果是的話在重定向你兩個選項。 1)將數據作爲URL參數傳遞並在後端抓取參數,傳遞給模板並進行渲染。 2)重定向到另一個處理所有邏輯的後端端點,設置數據並呈現模板。您無法直接在重定向上傳遞數據。示例myTemplate.ExecuteTemplate(w,「base」,data)。另請參閱html包https://golang.org/pkg/html/template/ – reticentroot
請顯示'outputHTML'的定義,因爲這是呈現您的登錄頁面的函數。 – mkopriva
@mkopriva,我用相關數據更新了我的問題,我想現在 – vijay