|
|
@ -1,63 +0,0 @@ |
|
|
|
package site |
|
|
|
|
|
|
|
import ( |
|
|
|
"net/http" |
|
|
|
"strings" |
|
|
|
) |
|
|
|
|
|
|
|
/** |
|
|
|
* 取访问主机名 |
|
|
|
*/ |
|
|
|
func GetHost(req *http.Request) string { |
|
|
|
|
|
|
|
var hostlist []string = req.Header.Values("X-Forwarded-Host") |
|
|
|
var host string |
|
|
|
if len(hostlist) > 1 { |
|
|
|
host = hostlist[len(hostlist)-1] //取最后一次转发的
|
|
|
|
} else if len(hostlist) == 1 { |
|
|
|
host = hostlist[0] |
|
|
|
} else { |
|
|
|
host = "" |
|
|
|
} |
|
|
|
if host != "" { |
|
|
|
hosts := strings.Split(host, ",") |
|
|
|
host = strings.Trim(hosts[len(hosts)-1], " ") |
|
|
|
} |
|
|
|
|
|
|
|
if host == "" { |
|
|
|
host = req.Host |
|
|
|
} |
|
|
|
return host |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 取域名 |
|
|
|
*/ |
|
|
|
func GetDomain(req *http.Request) string { |
|
|
|
scheme := "http://" |
|
|
|
if req.TLS != nil { |
|
|
|
scheme = "https://" |
|
|
|
} |
|
|
|
if strings.Contains(req.Referer(), "https://") { |
|
|
|
scheme = "https://" |
|
|
|
} |
|
|
|
var host string = GetHost(req) |
|
|
|
|
|
|
|
host = strings.Split(host, ":")[0] |
|
|
|
|
|
|
|
var w strings.Builder |
|
|
|
w.WriteString(scheme) |
|
|
|
w.WriteString(host) |
|
|
|
|
|
|
|
return w.String() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
func SetHeader(w http.ResponseWriter, resp *http.Request) { |
|
|
|
|
|
|
|
w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
|
|
|
|
w.Header().Add("Access-Control-Allow-Headers", "Content-Type,x-csrf-token,x-requested-with,token") //header的类型
|
|
|
|
w.Header().Set("Access-Control-Allow-Methods", "POST,GET,OPTIONS") |
|
|
|
w.Header().Set("content-type", "application/json") //返回数据格式是json
|
|
|
|
// w.Header().Set("Content-Length", resp.Header.Get("Content-Length"))
|
|
|
|
} |