为了账号安全,请及时绑定邮箱和手机立即绑定

request.Post数组在提交表单后为空

request.Post数组在提交表单后为空

Go
炎炎设计 2021-05-12 17:32:54
我正在尝试处理一个简单的html表单。但是,提交后我无法获得任何帖子数据。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条经验 获得超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)

}


查看完整回答
反对 回复 2021-05-24
  • 1 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信