万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    ginのformでDELETEやPUTのメソッドを送る方法

    ginのフレームワークでできるか?

    HTMLのformmethodPUTとか書いてもおそらくブラウザが対応してない?せいか GET扱いになる。 おそらく、知らないmethodを書くとGETになる仕様なのかも?

    portaltan.hatenablog.com

    これをみるとhiddenに書けばいけるっぽい。 Sinatraが対応してくれてる?

    ここ見る限りモダンなRailsなども対応 html - Why don't the modern browsers support PUT and DELETE form methods? - Stack Overflow

    しかしginは・・・。できなかった・・。

    探すとginのgithubのフォーラム上で

    PUT does not work. Always 404 · Issue #450 · gin-gonic/gin · GitHub

    ん?<form action="/1" method="post"> これは? しかし、これは単にidのことですね。関係ない。

    go get github.com/martini-contrib/method

    インポートする。

    import(
            "ghoulme/controllers"
            "github.com/gin-gonic/gin"
            "net/http"
            "os"
            "github.com/martini-contrib/method"
    )

    これ追加。

    var overrideHandler = method.Override()
    func Override(c *gin.Context) {
            overrideHandler.ServeHTTP(c.Writer, c.Request)
    }
            router := gin.Default()
            router.Use(Override) // これ追加。
            router.LoadHTMLGlob("templates/**/*")
            controllers.Setup(router

    これで一応putできるようになった。

    が・・・・つねに404となる。 誰か教えて。 またはわかったらまた記事書きます。