加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

在表单提交时,请 – 请求.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)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读