我想在我的 Go Web 应用程序中设置错误样式。目前我正在处理类似以下示例的错误:if !ok { http.Error(w, "Username and/or password do not match", http.StatusForbidden) return}但是,这会导致错误消息在浏览器中显示为简单文本。我想用 HTML 和 CSS 来设置我的错误样式,但简单地忽略该http.Error方法并使用似乎是不好的做法:TPL := template.Must(template.ParseGlob("templates/*.gohtml"))if !ok { TPL.ExecuteTemplate(w, "usernamePasswordMismatch.gohtml", nil)}有人可以推荐一种方法来正确处理我的错误,使用该http.Error方法或类似的方法,并且仍然使用 HTML 和 CSS 设计我的错误页面吗?
1 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
在执行模板之前,您可以手动编写w.WriteHeader
您想要返回的http状态代码:
TPL := template.Must(template.ParseGlob("templates/*.gohtml"))
if !ok {
w.WriteHeader(http.StatusForbidden)
TPL.ExecuteTemplate(w, "usernamePasswordMismatch.gohtml", nil)
}
您需要WriteHeader在写入实际数据之前调用,否则ResponseWriter将自动用作StatusOK响应:
// If WriteHeader has not yet been called, Write calls
// WriteHeader(http.StatusOK) before writing the data.
- 1 回答
- 0 关注
- 105 浏览
添加回答
举报
0/150
提交
取消