去http响应几个头

I'm want send to user alert if he type wrong password and return it to page were he type password. I'm making it like this

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")

        }
    }
}

But i'v get http: multiple response.WriteHeader calls error. How to do it right?

You cannot write to the http.ResponseWriter more than once depending on the HTTP spec.

from the go docs https://golang.org/pkg/net/http/#ResponseWriter

To solve your issue, you could have the script tags inside the template file, or make a new template. You could also tailor the response by adding the alert script before you send it. Maybe with template files.

However a proper solution to this problem might be to have more logic in the actual html served, the front end should display a response based on the status code or response body.