Fix regression caused by commit ad65479

Commit ad65479 will cause "Method Not Allow" in preflight response
when enable CORS plugin.

The root cause is that CORS plugin didn't generate http output after applied
commit ad65479, so the value of `ctx.ResponseWriter.Started` will be keep
`false`, and then later filter chains will be go on to run when CORS filter
finished.

This path will both fix "Method Not Allow" and the original bug
"multiple response.WriteHeader calls".

Signed-off-by: Yunkai Zhang <qiushu.zyk@taobao.com>
This commit is contained in:
Yunkai Zhang 2016-01-26 23:27:26 +08:00
parent 23bb36d35c
commit e3810b599d
1 changed files with 2 additions and 0 deletions

View File

@ -36,6 +36,7 @@
package cors
import (
"net/http"
"regexp"
"strconv"
"strings"
@ -215,6 +216,7 @@ func Allow(opts *Options) beego.FilterFunc {
for key, value := range headers {
ctx.Output.Header(key, value)
}
ctx.ResponseWriter.WriteHeader(http.StatusOK)
return
}
headers = opts.Header(origin)