diff --git a/internal/web/actions/default/servers/server/settings/origins/addPopup.go b/internal/web/actions/default/servers/server/settings/origins/addPopup.go index becc26ef..3aae93eb 100644 --- a/internal/web/actions/default/servers/server/settings/origins/addPopup.go +++ b/internal/web/actions/default/servers/server/settings/origins/addPopup.go @@ -68,7 +68,7 @@ func (this *AddPopupAction) RunPost(params struct { addr := params.Addr // 是否是完整的地址 - if params.Protocol == "http" || params.Protocol == "https" { + if (params.Protocol == "http" || params.Protocol == "https") && regexp.MustCompile(`^(http|https)://`).MatchString(addr) { u, err := url.Parse(addr) if err == nil { addr = u.Host diff --git a/internal/web/actions/default/servers/server/settings/origins/updatePopup.go b/internal/web/actions/default/servers/server/settings/origins/updatePopup.go index 3e891391..12b2aad9 100644 --- a/internal/web/actions/default/servers/server/settings/origins/updatePopup.go +++ b/internal/web/actions/default/servers/server/settings/origins/updatePopup.go @@ -122,7 +122,7 @@ func (this *UpdatePopupAction) RunPost(params struct { addr := params.Addr // 是否是完整的地址 - if params.Protocol == "http" || params.Protocol == "https" { + if (params.Protocol == "http" || params.Protocol == "https") && regexp.MustCompile(`^(http|https)://`).MatchString(addr) { u, err := url.Parse(addr) if err == nil { addr = u.Host diff --git a/web/views/@default/servers/addPortPopup.js b/web/views/@default/servers/addPortPopup.js index 5935326a..99e1412d 100644 --- a/web/views/@default/servers/addPortPopup.js +++ b/web/views/@default/servers/addPortPopup.js @@ -9,6 +9,8 @@ Tea.context(function () { // 初始化 if (this.protocol == "http") { this.address = "80" + } else if (this.protocol == "https") { + this.address = "443" } if (window.parent.UPDATING_ADDR != null) { @@ -29,6 +31,7 @@ Tea.context(function () { break case "https": this.address = "443" + break } } diff --git a/web/views/@default/servers/server/settings/origins/addPopup.html b/web/views/@default/servers/server/settings/origins/addPopup.html index cb496847..0756ada9 100644 --- a/web/views/@default/servers/server/settings/origins/addPopup.html +++ b/web/views/@default/servers/server/settings/origins/addPopup.html @@ -10,7 +10,7 @@ 源站协议 - @@ -26,7 +26,8 @@ 源站地址 * -

源站服务器地址,通常是一个IP(或域名)加端口,不需要加 http:// 或 https://

+

{{addrError}} + 源站服务器地址,通常是一个IP(或域名)加端口,不需要加 http:// 或 https://

diff --git a/web/views/@default/servers/server/settings/origins/addPopup.js b/web/views/@default/servers/server/settings/origins/addPopup.js index af257dc8..76031719 100644 --- a/web/views/@default/servers/server/settings/origins/addPopup.js +++ b/web/views/@default/servers/server/settings/origins/addPopup.js @@ -2,10 +2,16 @@ Tea.context(function () { this.addr = "" this.protocol = "" + this.addrError = "" + if (this.isHTTP) { this.protocol = "http" } + this.changeProtocol = function () { + this.checkPort() + } + this.changeAddr = function () { if (this.serverType == "httpProxy") { if (this.addr.startsWith("http://")) { @@ -14,5 +20,25 @@ Tea.context(function () { this.protocol = "https" } } + + this.checkPort() + } + + this.checkPort = function () { + this.addrError = "" + + // HTTP + if (this.protocol == "http") { + if (this.addr.endsWith(":443")) { + this.addrError = "443通常是HTTPS协议端口,请确认源站协议选择是否正确。" + } + } + + // HTTPS + if (this.protocol == "https") { + if (this.addr.endsWith(":80")) { + this.addrError = "80通常是HTTP协议端口,请确认源站协议选择是否正确。" + } + } } }) \ No newline at end of file diff --git a/web/views/@default/servers/server/settings/origins/updatePopup.html b/web/views/@default/servers/server/settings/origins/updatePopup.html index ce19173f..52cb4cba 100644 --- a/web/views/@default/servers/server/settings/origins/updatePopup.html +++ b/web/views/@default/servers/server/settings/origins/updatePopup.html @@ -12,7 +12,7 @@ 源站协议 - @@ -28,7 +28,7 @@ 源站地址 -

源站服务器地址,通常是一个IP(或域名)加端口,不需要加 http:// 或 https://

+

{{addrError}}源站服务器地址,通常是一个IP(或域名)加端口,不需要加 http:// 或 https://

diff --git a/web/views/@default/servers/server/settings/origins/updatePopup.js b/web/views/@default/servers/server/settings/origins/updatePopup.js index 5502d366..a4a03070 100644 --- a/web/views/@default/servers/server/settings/origins/updatePopup.js +++ b/web/views/@default/servers/server/settings/origins/updatePopup.js @@ -1,4 +1,14 @@ Tea.context(function () { + this.addrError = "" + + this.$delay(function () { + this.checkPort() + }) + + this.changeProtocol = function () { + this.checkPort() + } + this.changeAddr = function () { if (this.serverType == "httpProxy") { if (this.origin.addr.startsWith("http://")) { @@ -7,5 +17,25 @@ Tea.context(function () { this.origin.protocol = "https" } } + + this.checkPort() + } + + this.checkPort = function () { + this.addrError = "" + + // HTTP + if (this.origin.protocol == "http") { + if (this.origin.addr.endsWith(":443")) { + this.addrError = "443通常是HTTPS协议端口,请确认源站协议选择是否正确。" + } + } + + // HTTPS + if (this.origin.protocol == "https") { + if (this.origin.addr.endsWith(":80")) { + this.addrError = "80通常是HTTP协议端口,请确认源站协议选择是否正确。" + } + } } }) \ No newline at end of file