🐞 Patch Changes
-
#11653
32be549Thanks @florian-lefebvre! - Updatesastro:envdocs to reflect current developments and usage guidance -
#11658
13b912aThanks @bholmesdev! - FixesorThrow()type when calling an Action without aninputvalidator. -
#11603
f31d466Thanks @bholmesdev! - Improves user experience when render an Action result from a form POST request:- Removes “Confirm post resubmission?” dialog when refreshing a result.
- Removes the
?_astroAction=NAMEflag when a result is rendered.
Also improves the DX of directing to a new route on success. Actions will now redirect to the route specified in your
actionstring on success, and redirect back to the previous page on error. This follows the routing convention of established backend frameworks like Laravel.For example, say you want to redirect to a
/successroute whenactions.signupsucceeds. You can add/successto youractionstring like so:<form method="POST" action={'/success' + actions.signup}></form>- On success, Astro will redirect to
/success. - On error, Astro will redirect back to the current page.
You can retrieve the action result from either page using the
Astro.getActionResult()function.Note on security
This uses a temporary cookie to forward the action result to the next page. The cookie will be deleted when that page is rendered.
⚠ The action result is not encrypted. In general, we recommend returning minimal data from an action handler to a) avoid leaking sensitive information, and b) avoid unexpected render issues once the temporary cookie is deleted. For example, a
loginfunction may return a user’s session id to retrieve from your Astro frontmatter, rather than the entire user object.