2 回答
TA贡献1820条经验 获得超10个赞
第一个问题是您为模式注册了处理程序,"/public/new_user/"但将表单发布到/public/new_user.
您必须更改 HTML<form>才能使用此 URL:
<form action="/public/new_user/" method="post" id="form1">
这样做的重要性在于,即使访问 URL/public/new_user有效,因为发生了自动重定向(301 Moved permanently响应),但是当您的浏览器向新 URL(以斜杠结尾)发出第二次请求时,提交的表单不会被“携带”。
执行此操作后,您仍然会收到一个空白页面,因为您的signup()函数不会写入任何响应(尽管您现在将在控制台上看到提交和打印的表单数据)。
如果你想看到回复,要么写点什么,要么重定向到另一个页面。
另请注意,fmt.Println()它没有格式字符串参数,它只打印您传递给它的所有内容。使用fmt.Printf(),如果你想使用的格式字符串。您也可以使用%+v格式字符串打印带有字段名称的完整结构。
例如:
func signup(w http.ResponseWriter, r *http.Request) {
var S Signup
S.name = r.FormValue("name")
S.email = r.FormValue("email")
fmt.Printf("%+v\n", S)
fmt.Fprintf(w, "Form received, you used name: %s", S.name)
}
- 2 回答
- 0 关注
- 256 浏览
添加回答
举报