【Go + htmx】隨手玩玩

更新於 2024/12/08閱讀時間約 3 分鐘

htmx前陣子還只是網路迷因,近期拿來搭配go的系列影片越來越多了,兩者都可以用很少量的程式實作出功能,很適合拿來做些簡單的project。

專案架構

專案架構

專案架構


  • go主程式為後端server
  • html檔案為前端頁面




畫面

呈現上只使用預設的模板修改一下文字,加入一個按鈕作為請求的觸發

raw-image


程式

後段部分:

實作一個server監聽本機的8080 port,依據請求的類型(GET/POST)決定回應的段落內容

後端程式

後端程式

前端部分:

在head區塊引入CDN,並且在button 上加入htmx相對應功能的attribute

<script src="https://unpkg.com/htmx.org@1.9.9"></script>

<button hx-post="http://localhost:8080" hx-swap="outerHTML">Click Me</button>
前端發送post request

前端發送post request




CORS

啟動後,點擊畫面按鈕發現沒反應
用開發者工具檢視一下問題(F12),是被瀏覽器的CORS擋下來了

raw-image

preflight request有完成,只不過傳送的header不在後端允許的項目中

raw-image

回到後端多設置兩條header

	w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Headers", "hx-current-url,hx-request")
header處理

header處理




結果


成功發送post request

成功發送post request

改為發送GET

<button hx-get="http://localhost:8080" hx-swap="outerHTML">Click Me</button>
前端發送get request

前端發送get request

取的get結果

取的get結果


htmx強大的地方,在於一些常用的功能已透過attribute進行處理,不用額外寫javascript去控制邏輯。官方文件上還有很多機制可以發掘,等有時間再來鑽研了。


avatar-img
13會員
64內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Err500 的其他內容
作為程式開發人員,一路從Notepad++、VSCode、Eclipse,或多或少都有機會聽過vim,只為了追求極致的開發效率。看看國外直播主ThePrimeagen邊寫程式邊直播,行雲流水的編輯速度,我覺得...我的問題是出在英打。
相信很多初學者學python的原因,不外乎語法簡單、好上手、重點是有很多現成的套件可以玩。那麼,Java呢?有!當然有!而且還多到你不知道該選哪個好! 今天的文章主要示範如何在vscode新建立Java 的maven專案,並且透過maven安裝這些額外的套件(依賴)
最近配合公司政策換了新電腦,重新回想起從頭建環境的惡夢。本篇文就來記錄一下如何開始踏入Java的第一步,方便起見也使用相對Eclipse、IntelliJ來說輕量不少的VScode作為編輯器。
進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
作為程式開發人員,一路從Notepad++、VSCode、Eclipse,或多或少都有機會聽過vim,只為了追求極致的開發效率。看看國外直播主ThePrimeagen邊寫程式邊直播,行雲流水的編輯速度,我覺得...我的問題是出在英打。
相信很多初學者學python的原因,不外乎語法簡單、好上手、重點是有很多現成的套件可以玩。那麼,Java呢?有!當然有!而且還多到你不知道該選哪個好! 今天的文章主要示範如何在vscode新建立Java 的maven專案,並且透過maven安裝這些額外的套件(依賴)
最近配合公司政策換了新電腦,重新回想起從頭建環境的惡夢。本篇文就來記錄一下如何開始踏入Java的第一步,方便起見也使用相對Eclipse、IntelliJ來說輕量不少的VScode作為編輯器。
進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
隨著萬聖節檔期即將到來,在傳說團體戰當中率先來迎接我們的,就是有著飛鬼龍之稱的起源騎拉帝納,它也算是我們的老朋友啦。
跟著意志與心之所向行事,向來都是困難的。會考慮太多世俗的眼光,旁人的意見,所以保持安靜是必要的。不需要向其他人解釋與說明,自己想要達成的事,只需要自己努力便是。安靜地看著,用著力氣做著自己的事就好。有許多事,不需要明白地說明,因為能懂的只有自己。工作,家人,情人,都好。彷彿只有自己的時候,才能想透徹
Thumbnail
今年FGO台服終於預計在年底進入2-7,又常常看到很多人說對中南美洲文化不熟, 因此想再把文章統整成一下成更適合作為遊戲補充資料的版本,希望大家在到時遊玩2-7時有更多樂趣。 第一篇基本上是以基礎知識為主,不太會有遊戲劇透。
可免費獲得虛擬貨幣的錢包APP 馬上下載「GO!WALLET」吧! 趁現在利用下列號碼註冊APP,就可300點數喔
Thumbnail
Go out less during the pandemic avoidance time frame! Get ready nourishment for hide kids + train to go to the restroom at home   Grasp 1 rule to succ
一天傍晚和老婆散步經過一家雙語幼兒園,正巧是放學時間,父母們趕忙到園區接兒女回家。此時,聽到園區傳來廣播內容: “Go home, Ivy!” 一位老師透過廣播通知小朋友,意思對應到中文應該是:「爸媽來接你了,回家囉!」我和太太互看一眼後,不但笑了,也覺得很「三條缐」。
Thumbnail
我的旅行規劃方式是訂好機票跟住宿,列出想去的景點依據交通去安排路線,只要先建構出相關地理位置概念就可以了
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
隨著萬聖節檔期即將到來,在傳說團體戰當中率先來迎接我們的,就是有著飛鬼龍之稱的起源騎拉帝納,它也算是我們的老朋友啦。
跟著意志與心之所向行事,向來都是困難的。會考慮太多世俗的眼光,旁人的意見,所以保持安靜是必要的。不需要向其他人解釋與說明,自己想要達成的事,只需要自己努力便是。安靜地看著,用著力氣做著自己的事就好。有許多事,不需要明白地說明,因為能懂的只有自己。工作,家人,情人,都好。彷彿只有自己的時候,才能想透徹
Thumbnail
今年FGO台服終於預計在年底進入2-7,又常常看到很多人說對中南美洲文化不熟, 因此想再把文章統整成一下成更適合作為遊戲補充資料的版本,希望大家在到時遊玩2-7時有更多樂趣。 第一篇基本上是以基礎知識為主,不太會有遊戲劇透。
可免費獲得虛擬貨幣的錢包APP 馬上下載「GO!WALLET」吧! 趁現在利用下列號碼註冊APP,就可300點數喔
Thumbnail
Go out less during the pandemic avoidance time frame! Get ready nourishment for hide kids + train to go to the restroom at home   Grasp 1 rule to succ
一天傍晚和老婆散步經過一家雙語幼兒園,正巧是放學時間,父母們趕忙到園區接兒女回家。此時,聽到園區傳來廣播內容: “Go home, Ivy!” 一位老師透過廣播通知小朋友,意思對應到中文應該是:「爸媽來接你了,回家囉!」我和太太互看一眼後,不但笑了,也覺得很「三條缐」。
Thumbnail
我的旅行規劃方式是訂好機票跟住宿,列出想去的景點依據交通去安排路線,只要先建構出相關地理位置概念就可以了