为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 HTML 和 CSS 设置 Go 错误的样式?

如何使用 HTML 和 CSS 设置 Go 错误的样式?

Go
SMILET 2023-07-17 17:56:44
我想在我的 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.


查看完整回答
反对 回复 2023-07-17
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信