Browse Source

Context redirect uses the built-in redirect facility

Manu Mtz-Almeida 10 years ago
parent
commit
3abeba82fc
2 changed files with 5 additions and 4 deletions
  1. 2 2
      context.go
  2. 3 2
      render/render.go

+ 2 - 2
context.go

@@ -234,9 +234,9 @@ func (c *Context) HTMLString(code int, format string, values ...interface{}) {
 // Returns a HTTP redirect to the specific location.
 func (c *Context) Redirect(code int, location string) {
 	if code >= 300 && code <= 308 {
-		c.Render(code, render.Redirect, location)
+		c.Render(code, render.Redirect, c.Request, location)
 	} else {
-		log.Panicf("Cannot send a redirect with status code %d", code)
+		log.Panicf("Cannot redirect with status code %d", code)
 	}
 }
 

+ 3 - 2
render/render.go

@@ -44,8 +44,9 @@ var (
 )
 
 func (_ redirectRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
-	w.Header().Set("Location", data[0].(string))
-	w.WriteHeader(code)
+	req := data[0].(*http.Request)
+	location := data[1].(string)
+	http.Redirect(w, req, location, code)
 	return nil
 }