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!