📄 静态站点表单

静态站点上放一个可用的表单,
不需要后端

GitHub Pages、Netlify、Neocities,或一个纯 HTML 文件夹——把表单指向 FormLM 接口,每条提交都会被存储。免费起步。

为什么静态站点留不住表单

HTML 能在任何地方渲染表单,却存不下答案。

静态站点就是一堆按原样分发的文件。这正是它快、便宜、随处可托管的原因——GitHub Pages、Netlify、Cloudflare Pages、Vercel、Neocities、一个 S3 桶。但没有任何进程在运行来接收 POST,所以访客点下提交的那一刻,提交无处可去。经典绕法各有代价:

mailto: 链接依赖访客的邮件客户端,还会把地址泄露给爬虫。托管方原生表单处理(如 Netlify Forms)把你锁死在该托管上——搬到 GitHub Pages 表单就死了。搭一个真后端意味着服务器、数据库、部署与维护,而要收集的往往只是联系消息。

干净解决这一问题的品类是表单后端:页面保持静态,表单的 action 属性指向一个托管接口,由它存储提交。FormLM 的 Data API 是一个表单后端,还会说 JSON、在 ?help 为 AI Agent 自我描述、并允许你经 HTTP 查询存回的数据。

两行的改动

改一个属性,这就是全部迁移。
<!-- 改动前:一个哪儿也去不了的表单 -->
<form action="#" method="POST"> ... </form>

<!-- 改动后:一个会把提交存下来的表单 -->
<form action="https://formlm.me/api/v3/share/YOUR_TOKEN/form" method="POST">
  <input name="name" required>
  <input name="email" type="email" required>
  <textarea name="message"></textarea>
  <button type="submit">Send</button>
</form>
✓

无需 JavaScript——原生表单 POST 在 JS 被拦截时也能工作。

✓

与托管无关——同一接口在任何静态托管或本地文件上都可用。

✓

CORS 已开启——就算加了 JS,fetch 从任何来源调用都成功。

✓

字段自动创建——新的 input 名称自动成为新数据列。

获取 token:在 FormLM 创建一个表单(一句话描述,AI 帮你生成),打开发布页,开启 Data API,复制接口。提交会出现在你的 FormLM 仪表盘里,并且持续可查询。

更体面地处理响应

可选:让用户留在你的页面,而不是看到一屏裸 JSON。

原生表单 POST 会跳转到接口的 JSON 响应。如果你更想展示自己的致谢状态,几行 JavaScript 拦截提交并用 fetch 发送——同一接口、同一存储、更好的体验:

const form = document.querySelector('form');
form.addEventListener('submit', async (e) => {
  e.preventDefault();
  await fetch(form.action, { method: "POST", body: new FormData(form) });
  form.reset();
  // 在这里显示你自己的"提交成功"提示
});

两条路径存储的记录完全相同——按页面选,而不是按项目选。文档站也许保留无 JS 版;带设计系统的落地页也许用 fetch 版。如果你希望访客收到的是个性化报告而不只是一句感谢,FormLM 的评估引擎就在这里接棒:同一条提交可以触发计分与带品牌的 PDF。

常见问题

静态网站能拥有可用的表单吗?

能。页面本身保持静态——表单的 action 属性指向一个外部表单接口,由它存储提交。你的托管上不运行任何服务端代码,所以 GitHub Pages、Netlify、Vercel、Cloudflare Pages、Neocities 或任何静态文件托管都能用。

怎么在 GitHub Pages 上加表单?

先创建一个表单接口,再把 HTML 表单的 action 属性设为该接口 URL、method 设为 POST。GitHub Pages 照常服务页面;提交由接口服务存储。同样的步骤适用于任何静态托管。

没有 JavaScript 表单也能用吗?

能。FormLM 的表单接口接收原生 application/x-www-form-urlencoded POST,所以一个带 action 属性的纯表单元素在 JavaScript 被禁用或拦截时也能工作。只有想在无页面跳转的情况下处理响应时才需要 JavaScript。

它和 Netlify Forms 有什么不同?

Netlify Forms 只在你的网站构建并部署于 Netlify 时才可用。表单接口在哪里都能用——GitHub Pages、任何托管、甚至本地文件。FormLM 还存储可通过 API 查询的结构化记录,而不只是把提交转发到邮箱。

提交的数据去了哪里?

存进你 FormLM 表单的提交记录。你可以在 FormLM 里浏览、导出 CSV,并且——如果你开启 query API——还能经 HTTP 读回,用于仪表盘或自动化。

相关指南

今天就让你静态站点的表单上线

免费接口、原生 HTML 支持、真正可查询的提交。

创建你的免费接口 →