0
は私が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)
}
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")
}
行く に小さなコードを書かれているHTMLにどのように。今私は変数を送信したいtestvariableとlogin.htmlにその値と呼ばれるいくつかの文字列にしたい。
どのようにリダイレクトしていますか? outputHTML == http.Redirect()?そうであれば、2つのオプションをリダイレクトします。 1)データをURLパラメータとして渡し、バックエンドでパラメータを取得し、テンプレートに渡してレンダリングします。 2)別のバックエンドエンドポイントにリダイレクトします。これは、すべてのロジックを処理し、データを設定し、テンプレートをレンダリングします。リダイレクトで直接データを渡すことはできません。例myTemplate.ExecuteTemplate(w、 "base"、data)また、HTMLパッケージhttps://golang.org/pkg/html/template/ – reticentroot
を参照してください。あなたのログインページをレンダリングする関数であるので、 'outputHTML'の定義を表示してください。 – mkopriva
@mkopriva、関連するデータで私の質問を更新しました。 – vijay