Go echoでformのpost処理後のリダイレクトがうまく行かずにハマった
Go echoでformのpost処理後のリダイレクトがうまく行かずにハマったのでメモ
やりたかったこと
formデータをPOSTで受け取って処理したあと、一覧ページにリダイレクトしたかった。
func (w *WebApp) 登録処理(c echo.Context) error { // postパラメータを受け取って登録処理 ... // TOP画面へリダイレクトさせる return c.Redirect(http.StatusCreated, "/") }
起こったこと
リダイレクト先でstatus500でエラーになってしまった。
調べると、リダイレクト先にPOSTでリクエストしていて、そんなRootingは用意していないので(Getしか用意していないので)エラーになってた。
間違っていたこと
返却statuscodeをhttp.StatusFound(302)にすべきだった。
return c.Redirect(http.StatusFound, "/")
そういえばそうでした。
登録完了してデータが作成されたので感覚でなんとなくStatusCreatedにしてしまってた。