beego使用過濾器實現PUT、DELETE請求

首先要說明, 在 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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章