An HTML form causes the browser to refresh the page or navigate to a new one. To send form data to an API endpoint instead, you must intercept the form submission using JavaScript.
This recipe shows you how to send form data to an API endpoint and handle that data.
output: 'server'
) enabledCreate a form component using your UI framework. Each input should have a name
attribute that describes the value of that input.
Be sure to include a <button>
or <input type="submit">
element to submit the form.
Create the post
API endpoint that will receive the form data. Use request.formData()
to process it. Be sure to validate the form values before you use them.
This example sends a JSON object with a message back to the client.
Create a function that accepts a submit event, then pass it as a submit
event handler to your form. In the function, call preventDefault
on the event to override the browser’s default submission process.
Then, create a FormData
object and send it to your endpoint using fetch
.
Learn how to share state across framework components with Nano Stores.
Add an RSS feed to your Astro site to let users subscribe to your content.
Learn how you can import YAML data by adding a Rollup plugin to your project.
Learn how to use JavaScript to send form submissions to an API Route
Learn how to build HTML forms and handle submissions in your frontmatter
Learn how to use Bun with your Astro site.
Learn how to call endpoints from the server in Astro.
Learn how to create an API route and fetch it from the client.
Learn how to build your Astro site using Docker.
Learn how to install a rehype plugin to add icons to external links in your Markdown files
Use dynamic routing and content collections to add internationalization support to your Astro site.
Build a remark plugin to add reading time to your Markdown or MDX files.
Learn how to share state across Astro components with Nano Stores.
© 2021 Fred K. Schott
Licensed under the MIT License.
https://docs.astro.build/en/recipes/build-forms-api/