首先要說明, 在 XHTML 1.x 標準中, 表單只支持 GET 或者 POST 方法. 雖然說根據標準, 你不應該將表單提交到 PUT 方法, 但是如果你真想的話, 也很容易, 通常可以這麼做:
首先表單本身還是使用 POST 方法提交, 但是可以在表單中添加一個隱藏字段:
<form method="post" ...>
<input type="hidden" name="_method" value="put" />
接着在 Beego 中添加一個過濾器來判斷是否將請求當做 PUT 來解析:
var FilterMethod = func(ctx *context.Context) {
if ctx.BeegoInput.Query("_method")!="" && ctx.BeegoInput.IsPost(){
ctx.Request.Method = ctx.BeegoInput.Query("_method")
}
}
beego.InsertFilter("*", beego.BeforeRouter, FilterMethod)