"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Redirection du navigateur à l'aide de HTML

Redirection du navigateur à l'aide de HTML

Publié le 2024-08-07
Parcourir:781

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é :


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.

Gestion de la redirection avec http.Redirect

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

    http.Redirect(w, r, "/", http.StatusSeeOther)
}

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)
}

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é jusqu'à présent une expérience enrichissante. 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.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/timenglesf/redirecting-the-browser-using-htmx-nan?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3