mirror of
https://github.com/astaxie/beego.git
synced 2024-11-26 06:01:29 +00:00
fix router Put and Delete method when post method with _method
This commit is contained in:
parent
68d4c2c0d8
commit
cb49be7815
18
router.go
18
router.go
@ -575,7 +575,7 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
|
|||||||
if requestPath == route.pattern {
|
if requestPath == route.pattern {
|
||||||
runrouter = route.controllerType
|
runrouter = route.controllerType
|
||||||
findrouter = true
|
findrouter = true
|
||||||
runMethod = p.getRunMethod(r.Method, route)
|
runMethod = p.getRunMethod(r.Method, context.Input.Query("_method"), route)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
// pattern /admin url /admin 200 /admin/ 404
|
// pattern /admin url /admin 200 /admin/ 404
|
||||||
@ -618,7 +618,7 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
|
|||||||
runrouter = route.controllerType
|
runrouter = route.controllerType
|
||||||
findrouter = true
|
findrouter = true
|
||||||
context.Input.Params = params
|
context.Input.Params = params
|
||||||
runMethod = p.getRunMethod(r.Method, route)
|
runMethod = p.getRunMethod(r.Method, context.Input.Query("_method"), route)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -788,7 +788,7 @@ func (p *ControllerRegistor) getErrorHandler(errorCode string) func(rw http.Resp
|
|||||||
return handler
|
return handler
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ControllerRegistor) getRunMethod(method string, router *controllerInfo) string {
|
func (p *ControllerRegistor) getRunMethod(method, _method string, router *controllerInfo) string {
|
||||||
method = strings.ToLower(method)
|
method = strings.ToLower(method)
|
||||||
if router.hasMethod {
|
if router.hasMethod {
|
||||||
if m, ok := router.methods[method]; ok {
|
if m, ok := router.methods[method]; ok {
|
||||||
@ -796,9 +796,21 @@ func (p *ControllerRegistor) getRunMethod(method string, router *controllerInfo)
|
|||||||
} else if m, ok = router.methods["*"]; ok {
|
} else if m, ok = router.methods["*"]; ok {
|
||||||
return m
|
return m
|
||||||
} else {
|
} else {
|
||||||
|
if method == "POST" || strings.ToLower(_method) == "put" {
|
||||||
|
return "Put"
|
||||||
|
}
|
||||||
|
if method == "POST" || strings.ToLower(_method) == "delete" {
|
||||||
|
return "Delete"
|
||||||
|
}
|
||||||
return strings.Title(method)
|
return strings.Title(method)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if method == "POST" || strings.ToLower(_method) == "put" {
|
||||||
|
return "Put"
|
||||||
|
}
|
||||||
|
if method == "POST" || strings.ToLower(_method) == "delete" {
|
||||||
|
return "Delete"
|
||||||
|
}
|
||||||
return strings.Title(method)
|
return strings.Title(method)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user