如果他键入错误的密码并将其返回到页面,我想要发送给用户警报他是否输入密码。我是这样做的
func sendJSONHandler(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
http.ServeFile(w, r, "template/api/api.html")
} else if r.Method == "POST" {
r.ParseForm()
if r.Form["password"][0] == "apiPassword" {
j := struct {
Proxies []string
}{Proxies: code.UP.Proxy}
w.Header().Set("Access-Control-Allow-Origin", corsAddrSite)
json.NewEncoder(w).Encode(j)
} else {
// here is a problem
fmt.Fprintln(w, "<script>alert('Wrong Password')</script>")
http.ServeFile(w, r, "template/api/api.html")
}
}
}
但是我得到http: multiple response.WriteHeader calls
错误。
怎么做对了?
答案 0 :(得分:0)
根据HTTP规范,您不能多次写入http.ResponseWriter。
来自go docs https://golang.org/pkg/net/http/#ResponseWriter
要解决您的问题,您可以在模板文件中包含脚本标记,或者创建新模板。您还可以在发送之前添加警报脚本来定制响应。也许有模板文件。
然而,对此问题的正确解决方案可能是在服务的实际html中有更多逻辑,前端应根据状态代码或响应主体显示响应。