„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum wird die HTML-Ausgabe von My Go als einfacher Text angezeigt?

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

Veröffentlicht am 24.11.2024
Durchsuche:536

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.

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.

Neuestes Tutorial Mehr>

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