Gos HTML-Ausgabeinterpretationsproblem erklärt
In Go kann das Senden von HTML-Ausgaben über HTTP manchmal dazu führen, dass die Ausgabe als Klartext interpretiert wird. Dies tritt auf, wenn der Antwort die entsprechenden Header fehlen, die den Inhaltstyp angeben.
Bedenken Sie den folgenden Code:
requestHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
t := template.New("test")
t, _ := template.ParseFiles("base.html")
t.Execute(w, "")
})
server := &http.Server{
Addr: ":9999",
Handler: requestHandler,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 Mit base.html, das Folgendes enthält:
base.html
Wenn Sie die bereitgestellte Seite laden, werden Sie feststellen, dass der HTML-Code wörtlich angezeigt und nicht gerendert wird. Dies liegt daran, dass der Antwort der Content-Type-Header fehlt, der auf text/html gesetzt werden sollte.
Um dieses Problem zu beheben, müssen Sie die folgende Zeile hinzufügen, bevor Sie die Vorlage ausführen:
w.Header().Set("Content-Type", "text/html")
Dieser Header informiert den Browser darüber, dass die Antwort HTML-Inhalt enthält, und ermöglicht ihm die Darstellung des HTML entsprechend.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3