From 3d21ed495a6ce7236dbcbb90b51dbd2da75d137c Mon Sep 17 00:00:00 2001 From: Haki Date: Fri, 26 Jul 2019 17:44:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=99=E6=80=81=E6=96=87=E4=BB=B6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E4=B8=8B=E8=BD=BD=20=E9=80=9A=E8=BF=87=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E8=B7=AF=E7=94=B1&http=E8=AF=B7=E6=B1=82OPTIONS?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sysservice/httpserverervice.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/sysservice/httpserverervice.go b/sysservice/httpserverervice.go index bea52c5..d07eaa1 100644 --- a/sysservice/httpserverervice.go +++ b/sysservice/httpserverervice.go @@ -129,6 +129,24 @@ func (slf *HttpServerService) staticServer(w http.ResponseWriter, r *http.Reques w.WriteHeader(status) w.Write([]byte(msg)) } + + // 在这儿处理例外路由接口 + var errRet error + for _, filter := range slf.httpfiltrateList { + ret := filter(r.URL.Path, w, r) + if ret == nil { + errRet = nil + break + } else { + errRet = ret + } + } + + if errRet != nil { + w.Write([]byte(errRet.Error())) + return + } + nowpath, _ := os.Getwd() upath := r.URL.Path destLocalPath := nowpath + upath @@ -172,7 +190,7 @@ func (slf *HttpServerService) staticServer(w http.ResponseWriter, r *http.Reques defer localfd.Close() io.Copy(localfd, resourceFile) - writeResp(http.StatusOK, localpath) + writeResp(http.StatusOK, upath+fileName) } } @@ -187,6 +205,10 @@ func (slf *HttpServerService) httpHandler(w http.ResponseWriter, r *http.Request //writeError(http.StatusMethodNotAllowed, "rpc: POST method required, received "+r.Method) //return } + if r.Method == "OPTIONS" { + return + } + defer r.Body.Close() msg, err := ioutil.ReadAll(r.Body) if err != nil {