登录
首页 >  Golang >  Go问答

使用 Golang 发布 HTML 表单方法

来源:stackoverflow

时间:2024-03-31 20:18:32 334浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《使用 Golang 发布 HTML 表单方法》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

所以,我在 html 中有这个表单。它旨在向 /subscribe 页面发出 post 请求:


  
first name:
last name:
email:

然后,我在 golang 中有这个路由器:

http.handlefunc("/subscribe/", subscribehandler)

以及 golang 中的这个处理程序:

func SubscribeHandler(w http.ResponseWriter, r *http.Request) {
    log.Println(r.Method)
}

但问题是,它总是打印 get

如何发布表单,所以r.method的值为post

谢谢


解决方案


根据文档:

如果子树已注册,并且收到命名子树根但不带尾部斜杠的请求,则 servemux 会将该请求重定向到子树根(添加尾部斜杠)。可以通过单独注册不带尾部斜杠的路径来覆盖此行为。

因为您注册了 "/subscribe/"带有尾部斜杠,所以它被注册为子树。再次,根据文档:

以斜杠结尾的模式命名为根子树

因为 http 重定向(实际上)始终是 get 请求,所以重定向后的方法当然是 get。您可以看到在此示例中发生了真正的重定向:https://play.golang.org/p/OcEhVDosTNf

解决方案是注册两者:

http.handlefunc("/subscribe/", subscribehandler)
http.handlefunc("/subscribe", subscribehandler)

或者将您的表单指向带有 / 的表单:

好了,本文到此结束,带大家了解了《使用 Golang 发布 HTML 表单方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>