Maison > développement back-end > Golang > le corps du texte

Redirection du navigateur à l'aide de HTML

PHPz
Libérer: 2024-08-05 20:33:22
original
511 Les gens l'ont consulté

Je travaille actuellement sur la création de ma propre plateforme de blogs utilisant Go, Templ et HTMX que j'hébergerai moi-même. J'ai décidé que ce serait un projet amusant et utile à aborder qui m'aiderait également à acquérir des connaissances sur cette pile. Dans cet article de blog, je partagerai mon expérience et mes solutions à un défi auquel j'ai été confronté lors de la gestion des redirections à l'aide de HTMX.

Redirection du navigateur

En finalisant les fonctionnalités pour l'administrateur, j'ai décidé qu'il était temps de commencer enfin à implémenter HTMX dans le projet. J'ai commencé avec un élément de bouton qui enverrait une requête POST à ​​mon gestionnaire de déconnexion. En règle générale, j'accomplirais cette tâche en utilisant un élément de formulaire, mais comme je l'ai mentionné, il est temps de commencer à implémenter HTMX dans le projet. Le problème est que je veux que cette action POST se comporte toujours comme un formulaire et que la réponse du serveur soit une redirection vers le point de terminaison /.

Problème : gestion de la redirection avec http.Redirect

Voici l'élément bouton que j'ai utilisé :

<button hx-post="/logout" hx-trigger="click">Logout</button>
Copier après la connexion

Le problème que j'ai rencontré était que la réponse à la redirection est toujours HTML et que HTMX échange ce contenu contre l'élément du bouton de déconnexion.

Gérer la redirection avec http.Redirect

func (app *application) handleLogoutPost(w http.ResponseWriter, r *http.Request) {
    // handle business logic...
    //...

    http.Redirect(w, r, "/", http.StatusSeeOther)
}
Copier après la connexion

Image : Le contenu a été échangé avec le bouton de déconnexion
The content has been swapped with the Logout button

Solution : utiliser l'en-tête HX-Redirect

L'échange de contenu peut être évité en remplaçant http.Redirect par un en-tête HX-Redirect dans la réponse et l'emplacement cible comme valeur.

func (app *application) handleLogoutPost(w http.ResponseWriter, r *http.Request) {
    // handle business logic...
    //...

    // Write our HX-Redirect header with location and redirect
    w.Header().Set("HX-Redirect", "/")
    http.WriteHeader(http.StatusNoContent)
}
Copier après la connexion

Image : Le navigateur a été redirigé vers / notez l'url.

Redirecting the browser using HTMX

Conclusion

Le processus de création de ma propre plateforme de blogs avec Go, Templ et HTMX a été une expérience enrichissante jusqu'à présent. En intégrant HTMX, le site pourra toujours disposer de nombreuses fonctionnalités d'interactivité s'il s'agit d'un site Web moderne sans avoir à écrire et à servir du code javascript supplémentaire. La gestion des redirections avec l’en-tête HX-Redirect était une solution simple et efficace. J'espère que cet article aidera tout le monde dans ses projets et vous encouragera à explorer le potentiel de HTMX dans vos applications Web.

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!

source:dev.to
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!