summaryrefslogtreecommitdiff
path: root/internal/handlers/response.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handlers/response.go')
-rw-r--r--internal/handlers/response.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/internal/handlers/response.go b/internal/handlers/response.go
index 9a7ab45..34d4491 100644
--- a/internal/handlers/response.go
+++ b/internal/handlers/response.go
@@ -7,9 +7,17 @@ import (
"net/http"
)
+// noCacheHeaders sets headers to prevent browser caching
+func noCacheHeaders(w http.ResponseWriter) {
+ w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
+ w.Header().Set("Pragma", "no-cache")
+ w.Header().Set("Expires", "0")
+}
+
// JSONResponse writes data as JSON with appropriate headers
func JSONResponse(w http.ResponseWriter, data interface{}) {
w.Header().Set("Content-Type", "application/json")
+ noCacheHeaders(w)
_ = json.NewEncoder(w).Encode(data)
}
@@ -23,6 +31,8 @@ func JSONError(w http.ResponseWriter, status int, msg string, err error) {
// HTMLResponse renders an HTML template
func HTMLResponse(w http.ResponseWriter, tmpl *template.Template, name string, data interface{}) {
+ w.Header().Set("Content-Type", "text/html; charset=utf-8")
+ noCacheHeaders(w)
if err := tmpl.ExecuteTemplate(w, name, data); err != nil {
http.Error(w, "Failed to render template", http.StatusInternalServerError)
log.Printf("Error rendering template %s: %v", name, err)