Ich arbeite derzeit an der Erstellung meiner eigenen Blogging-Plattform mit Go, Templ und HTMX, die ich selbst hosten werde. Ich entschied, dass dies ein unterhaltsames und nützliches Projekt sein würde, das mir auch dabei helfen würde, Kenntnisse über diesen Stack zu erlangen. In diesem Blogbeitrag werde ich meine Erfahrungen und Lösungen für eine Herausforderung teilen, mit der ich bei der Handhabung von Weiterleitungen mithilfe von HTMX konfrontiert war.
Während ich die Funktionalität für den Administrator fertigstellte, entschied ich, dass es an der Zeit war, endlich mit der Implementierung von HTMX in das Projekt zu beginnen. Ich begann mit einem Schaltflächenelement, das eine POST-Anfrage an meinen Abmeldehandler senden würde. Normalerweise würde ich diese Aufgabe mithilfe eines Formularelements erledigen, aber wie bereits erwähnt, ist es an der Zeit, mit der Implementierung von HTMX in das Projekt zu beginnen. Das Problem besteht darin, dass ich möchte, dass sich diese POST-Aktion weiterhin wie ein Formular verhält und dass die Antwort vom Server eine Umleitung zurück zum /-Endpunkt ist.
Hier ist das Schaltflächenelement, das ich verwendet habe:
Das Problem, auf das ich gestoßen bin, war, dass die Antwort für die Weiterleitung immer noch HTML ist und HTMX diesen Inhalt durch das Element der Abmeldeschaltfläche ersetzt.
Verarbeitung der Weiterleitung mit http.Redirect
func (app *application) handleLogoutPost(w http.ResponseWriter, r *http.Request) { // handle business logic... //... http.Redirect(w, r, "/", http.StatusSeeOther) }
Bild: Der Inhalt wurde mit dem Logout-Button ausgetauscht
Das Vertauschen von Inhalten kann verhindert werden, indem der http.Redirect durch einen HX-Redirect-Header in der Antwort und den Zielort als Wert ersetzt wird.
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) }
Bild: Der Browser wurde umgeleitet / beachten Sie die URL.
Der Aufbau meiner eigenen Blogging-Plattform mit Go, Templ und HTMX war bisher eine lohnende Erfahrung. Durch die Integration von HTMX kann die Website weiterhin über viele Interaktivitätsfunktionen einer modernen Website verfügen, ohne dass zusätzlicher Javascript-Code geschrieben und bereitgestellt werden muss. Die Handhabung von Weiterleitungen mit dem HX-Redirect-Header war eine einfache und effektive Lösung. Ich hoffe, dieser Beitrag hilft jedem bei seinen Projekten und ermutigt Sie, das Potenzial von HTMX in Ihren Webanwendungen zu erkunden.
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