Maison >développement back-end >Golang >Pourquoi ma sortie HTML s'affiche-t-elle sous forme de texte brut dans Go ?

Pourquoi ma sortie HTML s'affiche-t-elle sous forme de texte brut dans Go ?

DDD
DDDoriginal
2024-10-27 08:47:30325parcourir

Why Is My HTML Output Displaying as Plain Text in Go?

Sortie HTML inattendue sous forme de texte brut

Une idée fausse courante survient lorsque la sortie HTML est interprétée comme du texte brut au lieu d'être reçue au format HTML. Ce problème provient d'un malentendu dans le comportement par défaut du gestionnaire HTTP de Go.

Dans l'exemple de code fourni, un gestionnaire de requêtes est configuré pour générer et afficher un modèle HTML nommé "base.html" sur le port 9999. Cependant , lors du chargement de la page, le balisage HTML apparaît textuellement dans un bloc préformaté. Ce résultat inattendu est dû au rendu du modèle sous forme de texte brut par le serveur.

Pour remédier à ce problème, il est nécessaire de définir explicitement l'en-tête Content-Type de la réponse HTTP pour informer le client que la sortie est HTML. Cela garantit que le navigateur peut interpréter le contenu HTML et le restituer de manière appropriée.

La modification suivante devrait résoudre le problème :

<code class="go">requestHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    // Set the Content-Type header
    w.Header().Set("Content-Type", "text/html")
    
    t := template.New("test")
    t, _ := template.ParseFiles("base.html")
    t.Execute(w, "")
})</code>

Après avoir implémenté cette modification, le modèle HTML doit être rendu et affiché comme prévu dans le navigateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn