在表单提交时,请 – 请求.Post数组为空
发布时间:2020-12-14 18:57:00 所属栏目:资源 来源:网络整理
导读:我正在尝试处理一个简单的html表单.但是,我无法在提交后收到任何信息. r.Form映射始终为[].不知道我在哪里错了. 提前致谢. 这是代码http://play.golang.org/p/aZxPCcRAVV package mainimport ( "html/template" "log" "net/http")func rootHandler(w http.Re
我正在尝试处理一个简单的html表单.但是,我无法在提交后收到任何信息. r.Form映射始终为[].不知道我在哪里错了.
提前致谢. 这是代码http://play.golang.org/p/aZxPCcRAVV package main import ( "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> ` 解决方法
看来你需要先调用ParseForm.从go文档
// 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) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |