我正在嘗試處理一個簡單的html表單。但是,提交后我無法獲得任何帖子數(shù)據(jù)。r.Form映射始終為[]。不知道我要去哪里錯了。提前致謝。這是代碼http://play.golang.org/p/aZxPCcRAVVpackage mainimport ( "html/template" "log" "net/http")func rootHandler(w http.ResponseWriter, r *http.Request) { t, _ := template.New("form.html").Parse(form) t.Execute(w, "")}func formHandler(w http.ResponseWriter, r *http.Request) { log.Println(r.Form) rootHandler(w, r)}func main() { http.HandleFunc("/", rootHandler) http.HandleFunc("/login", formHandler) http.ListenAndServe("127.0.0.1:9999", nil)}var form = `<h1>Login</h1><form action="/login" method="POST"><div><input name="username" type="text"></div><div><input type="submit" value="Save"></div></form>`
1 回答

隔江千里
TA貢獻1906條經(jīng)驗 獲得超10個贊
看來您需要先調用ParseForm。隨時隨地的文檔
// Form contains the parsed form data, including both the URL
// field's query parameters and the POST or PUT form data.
// This field is only available after ParseForm is called.
// The HTTP client ignores Form and uses Body instead.
Form url.Values
還有一些代碼可以使您的示例正常工作。
func formHandler(w http.ResponseWriter, r *http.Request) {
err := r.ParseForm()
if err != nil {
//handle error http.Error() for example
return
}
log.Println(r.Form)
rootHandler(w, r)
}
- 1 回答
- 0 關注
- 292 瀏覽
添加回答
舉報
0/150
提交
取消