diff --git a/modules/http_proxy_js_response.go b/modules/http_proxy_js_response.go index cda4fa02..ef93d60c 100644 --- a/modules/http_proxy_js_response.go +++ b/modules/http_proxy_js_response.go @@ -24,18 +24,22 @@ type JSResponse struct { func NewJSResponse(res *http.Response) *JSResponse { cType := "" headers := "" + code := 200 - for name, values := range res.Header { - for _, value := range values { - if name == "Content-Type" { - cType = value + if res != nil { + code = res.StatusCode + for name, values := range res.Header { + for _, value := range values { + if name == "Content-Type" { + cType = value + } + headers += name + ": " + value + "\r\n" } - headers += name + ": " + value + "\r\n" } } resp := &JSResponse{ - Status: res.StatusCode, + Status: code, ContentType: cType, Headers: headers, resp: res, diff --git a/modules/http_proxy_script.go b/modules/http_proxy_script.go index d0778ce2..29a35f11 100644 --- a/modules/http_proxy_script.go +++ b/modules/http_proxy_script.go @@ -126,7 +126,7 @@ func (s *ProxyScript) doRequestDefines(req *http.Request) (err error, jsres *JSR return } - jsres = &JSResponse{} + jsres = NewJSResponse(nil) if err = s.VM.Set("res", jsres); err != nil { log.Error("Error while defining response: %s", err) return