磁碟上的檔案用瀏覽器直接開啟,或本機執行的 AI 應用:兩者都能 POST 到 FormLM 開啟 CORS 的 Data API。無需伺服器、無需部署。
有些最好用的頁面從未被代管過。放在資料夾裡的個人儀表板。一次對話裡 AI 為你寫的測驗。躺在桌面、雙擊經 file:// 直開瀏覽器的計算機或紀錄器。零部署、零成本、零維護——也零持久化。關掉分頁,它忘了;把檔案搬到另一台機器,它也忘了。localStorage 看起來是答案,但它按瀏覽器、按設定檔隔離:你的資料永遠嫁給了那一台機器的 Chrome 設定檔。
解法和靜態網站是同一個,而且從 file:// 也管用:一個開啟 CORS 的儲存端點。FormLM 的 Data API 明確允許跨來源 POST 與 GET,於是瀏覽器的同源規則——平時會攔住本機檔案呼叫網路的那條——放你頁面的 fetch 直接過。頁面原地不動;資料去了雲端。
| localStorage | FormLM Data API | |
|---|---|---|
| 瀏覽器設定檔遺失後資料仍在 | 否 | 是 |
| 跨裝置可用 | 否 | 是 |
| 可被其他工具與 Agent 讀取 | 否 | 是——HTTP query API |
| 匯出與分析 | 在 devtools 裡手動複製 | CSV 匯出 + 彙總統計 |
| 搭建成本 | 零 | 一個免費端點 |
// save.js——得益於 CORS,file:// 也能用 async function save(entry) { const res = await fetch("https://formlm.me/api/v3/share/YOUR_TOKEN", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ data: entry, meta: { source: "local-page" } }) }); return res.json(); } // load.js——把資料全部讀回 async function load() { const res = await fetch("https://formlm.me/api/v3/share/YOUR_TOKEN/query?page=1&size=100"); return res.json(); }
有了這兩個函式,一個純 HTML 檔案就成了小型應用:資料活得比瀏覽器久、跨機器同步、隨時可匯出可分析。如果頁面是 AI Agent 寫的,把端點的 ?help 文件遞給它,讓它自己把這些呼叫接好——AI Agent 指南示範了這個模式。
本機頁面接雲端儲存免不了一個警示:端點 token 在頁面原始碼裡可見,請把資料當作半公開對待——日誌、紀錄器、原型都沒問題;機密不行。任何拿到 token 的人都能向該表單提交(若開啟 query,還能讀取)。
能——往雲端 API POST 就行。localStorage 只按瀏覽器留存,檔案一搬或瀏覽器設定檔一清就沒了。像 FormLM Data API 這種開啟 CORS 的端點能接收來自 file:// 頁面的 fetch 呼叫,所以你的本機檔案可以把資料存到網路上。
能,前提是遠端端點允許跨來源請求。FormLM 的 Data API 會為 POST 和 GET 送出必要的 CORS 標頭,所以從磁碟直接開啟的頁面也能提交和讀取資料。沒開 CORS 的端點會被瀏覽器的同源規則攔下。
localStorage 綁定瀏覽器、綁定設定檔、綁定機器:資料隨設定檔一起死。它不能跨裝置同步、不能被其他工具讀取、沒有查詢也沒有匯出。代管端點給你同樣的易用性,外加真正的持久化與 HTTP 讀取路徑。
能。query 端點把儲存記錄以 JSON 回傳,本機頁面可以 fetch 並渲染——讓一個純 HTML 檔案變成讀寫都有雲端持久化的小應用。
能——這是常見模式。AI Agent 寫一個跑在你磁碟上的頁面;你給它一個 FormLM 端點去 POST;應用就獲得了持久化儲存,全程沒有部署這一步。Agent 甚至能自己去讀端點的 ?help 文件。