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

DDD
Freigeben: 2024-10-29 20:39:29
Original
334 Leute haben es durchsucht

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())
Nach dem Login kopieren

Mit base.html, das Folgendes enthält:

<code class="html"><DOCTYPE html>
<html>
    <body>
        base.html
    </body>
</html></code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!