diff --git a/g/net/ghttp/http_response.go b/g/net/ghttp/http_response.go index ecc7c0790..e6271adb2 100644 --- a/g/net/ghttp/http_response.go +++ b/g/net/ghttp/http_response.go @@ -140,7 +140,11 @@ func (r *Response) WriteStatus(status int, content...string) { if status != http.StatusOK { if f := r.request.Server.getStatusHandler(status, r.request); f != nil { f(r.request) - r.WriteHeader(status) + // 如果是http.StatusOK那么表示回调函数内部没有设置header status, + // 那么这里就可以设置status,防止多次设置(http: multiple response.WriteHeader calls) + if r.Status == http.StatusOK { + r.WriteHeader(status) + } return } }