From 4991596daea57d78dbc0320a6ac708f7dc288021 Mon Sep 17 00:00:00 2001 From: mrasong Date: Fri, 15 Dec 2023 17:50:23 +0800 Subject: [PATCH] fixed: API error when the proxy name contains "#". --- server/dashboard_api.go | 5 +++-- web/frps/src/components/Traffic.vue | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/server/dashboard_api.go b/server/dashboard_api.go index 27944b9a..95d4505b 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -17,6 +17,7 @@ package server import ( "encoding/json" "net/http" + "net/url" "github.com/gorilla/mux" "github.com/prometheus/client_golang/prometheus/promhttp" @@ -282,7 +283,7 @@ func (svr *Service) apiProxyByTypeAndName(w http.ResponseWriter, r *http.Request res := GeneralResponse{Code: 200} params := mux.Vars(r) proxyType := params["type"] - name := params["name"] + name, _ := url.QueryUnescape(params["name"]) defer func() { log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) @@ -350,7 +351,7 @@ type GetProxyTrafficResp struct { func (svr *Service) apiProxyTraffic(w http.ResponseWriter, r *http.Request) { res := GeneralResponse{Code: 200} params := mux.Vars(r) - name := params["name"] + name, _ := url.QueryUnescape(params["name"]) defer func() { log.Info("Http response [%s]: code [%d]", r.URL.Path, res.Code) diff --git a/web/frps/src/components/Traffic.vue b/web/frps/src/components/Traffic.vue index ba07d4b9..46ae02cf 100644 --- a/web/frps/src/components/Traffic.vue +++ b/web/frps/src/components/Traffic.vue @@ -11,7 +11,7 @@ const props = defineProps<{ }>() const fetchData = () => { - let url = '../api/traffic/' + props.proxyName + let url = '../api/traffic/' + encodeURIComponent(props.proxyName) fetch(url, { credentials: 'include' }) .then((res) => { return res.json()