一个 HTML 表单会导致浏览器刷新页面或跳转到新页面。为了将表单数据发送到 API 端点,就必须要使用 JavaScript 拦截提交的表单。
本节示例向你展示了如何发送表单数据到一个 API 端点,并处理这些数据。
- 一个开启了 SSR (output: ‘server’) 模式的项目
- 安装一个集成的 UI 框架
-
使用你的 UI 框架创建一个表单组件。每个输入字段都应该有一个描述该输入值的 name
属性。
请确保表单中包含一个 <button>
或 <input type="submit">
元素,用于提交表单。
Lit
-
创建一个 post
API 端点,用于接收表单数据。使用 request.formData()
处理表单数据。但在你使用表单值之前,请确保对其进行必要的校验。
在这个示例中会向客户端发送一个包含响应消息的 JSON 对象。
-
创建一个函数以接受提交事件(submit event),然后将其作为 submit
事件处理器传递给你的表单。在函数中,调用事件的 preventDefault
方法,以覆盖浏览器的默认提交过程。
接下来,创建一个 FormData
对象,并使用 fetch
将其发送到你的端点。
Lit
更多方案
-
学习如何使用 Nano Stores 在框架组件之间共享状态
-
通过向你的 Astro 网站添加 RSS 摘要让用户来订阅你的内容。
-
Learn how you can import YAML data by adding a Rollup plugin to your project.
-
了解如何使用 JavaScript 发送表单到 API 路由
-
了解如何在 Astro 页面中构建 HTML 表单并在你的 frontmatter 中处理提交请求
-
-
-
了解如何创建一个 API 路由并从客户端进行获取。
-
了解如何使用 Docker 来构建你的 Astro 网站。
-
了解如何安装 rehype 插件并为你 Markdown 文件中的链接添加图标
-
通过动态路由和内容集合来让你的 Astro 站点支持国际化。
-
Build a remark plugin to add the last modified time to your Markdown and MDX.
-
构建一个 remark 插件并将其添加到你的 Markdown 或 MDX 文件中。
-
了解如何通过 Nano Stores 在 Astro 组件中共享状态