Heim >Backend-Entwicklung >Golang >Warum wird die HTML-Ausgabe von My Go als einfacher Text angezeigt?

Warum wird die HTML-Ausgabe von My Go als einfacher Text angezeigt?

DDD
DDDOriginal
2024-10-29 20:39:29447Durchsuche

Why is My Go HTML Output Displayed as Plain Text?

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.

Betrachten Sie den folgenden Code:

<code class="go">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 << 20,
}

log.Fatal(server.ListenAndServe())

Mit base.html, das Folgendes enthält:

<code class="html"><DOCTYPE html>
<html>
    <body>
        base.html
    </body>
</html></code>

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:

<code class="go">w.Header().Set("Content-Type", "text/html")</code>

Dieser Header informiert den Browser darüber, dass die Antwort HTML-Inhalt enthält, und ermöglicht ihm, den HTML-Code entsprechend darzustellen.

Das obige ist der detaillierte Inhalt vonWarum wird die HTML-Ausgabe von My Go als einfacher Text angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn