我有一个简单的聊天服务器,由于某种原因,http.Redirect 功能并没有真正工作。问题是,它并没有将我实际重定向到“/login”,而是提供了一个带有指向 /login 链接的 html 页面。这很烦人,因为不存在 CSS 并且看起来很难看。
func static(w http.ResponseWriter, r *http.Request) {
//check backend
if user, err := aaa.CurrentUser(w, r); err == nil {
//user is logged in
log.Println(user)
vars := mux.Vars(r)
page := vars["page"]
data, _ := ioutil.ReadFile("downloads/" + page)
w.Write(data)
return
}else {
//user is not logged in
http.Redirect(w,r,"/login",http.StatusUnauthorized)
w.Write([]byte("<script>alert('Please login')</script>"))
return
}
}
Run Code Online (Sandbox Code Playgroud)
例如,当用户未登录时,会出现 javascript 警报并将我带到此页面<a href="/login">Unauthorized</a>.这就是 html 页面包含的全部内容。只是那个单一的href 没有标题,什么都没有。
以防万一-main.go 代码(应该足够了)
package main
import (
"flag"
"fmt"
"html/template"
"io/ioutil"
"log"
"net/http"
"os" …Run Code Online (Sandbox Code Playgroud)