Web.go如何进行http重定向?

时间:2013-06-05 16:41:35

标签: go

我正在使用web.go编写一个小应用程序,其中包含一个为表单提供服务的函数。如果表单无效,用户将被重定向到同一页面:

func mypage(ctx *web.Context) {
     if ctx.Request.Method == "GET" {
         // show the form
     } else if ctx.Request.Method == "POST" {
        // redirection if the form is not valid:
        ctx.Request.Method = "GET"
        http.Redirect(ctx.ResponseWriter, 
                      ctx.Request, "/mypage", http.StatusNotAcceptable)
        return
     }
}

这样做有一点需要注意,当表单无效时,它会首先显示一个页面,其中包含"Not Acceptable"所喜欢的文字/mypage。如果表单无效,如何直接转到/mypage?我怀疑它与http.StatusNotAcceptable有关,但我不知道应该用它替换它。

1 个答案:

答案 0 :(得分:1)

事实证明这很容易:)

ctx.Request.Method = "GET"
mypage(ctx)

无需http.Redirect。重要的是在调用Method之前先将GET更改为mypage(ctx)